/* Emissor Fiscal — Atuar Contabilidade
   Parte 1: padrão visual dos sistemas Atuar (mesma folha do Sistema Simples Nacional).
   Parte 2: componentes próprios do emissor, usando a mesma paleta. */
:root{
  --navy:#0B1F3A; --bg:#f8fafc; --card:#fff; --ink:#0f172a; --ink2:#1e293b; --mut:#64748b; --mut2:#94a3b8;
  --line:#e2e8f0; --line2:#f1f5f9; --input:#e5e5e5; --pri:#171717; --blue:#1d4ed8; --blue5:#3b82f6; --blue4:#60a5fa;
  --ok:#047857; --okbg:#ecfdf5; --okbd:#a7f3d0; --warn:#b45309; --warnbg:#fffbeb; --warnbd:#fde68a;
  --bad:#be123c; --badbg:#fff1f2; --badbd:#fecdd3; --info:#1d4ed8; --infobg:#eff6ff; --infobd:#bfdbfe;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font:12.6px/1.5 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:#0a0a0a;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
svg.ic{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app{min-height:100vh}
/* ---------- sidebar */
.side{position:fixed;inset:0 auto 0 0;width:256px;background:var(--navy);color:#e2e8f0;display:flex;flex-direction:column;z-index:30}
.brand{display:flex;align-items:center;gap:10px;padding:24px 20px}
.brand-ic{width:40px;height:40px;border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.brand-ic img{width:38px;height:38px;object-fit:contain}
.brand-ic svg{width:20px;height:20px}
.brand-t{margin:0;font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:#fff;line-height:1.2}
.brand-s{margin:0;font-size:8.55px;text-transform:uppercase;letter-spacing:.14em;color:#94a3b8}
.side nav{flex:1;padding:0 12px;overflow:auto}
.side nav a{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;font-size:12.6px;color:#cbd5e1;cursor:pointer;margin-bottom:4px;transition:background .15s,color .15s}
.side nav a:hover{background:rgba(255,255,255,.05);color:#fff}
.side nav a.on{background:rgba(255,255,255,.1);color:#fff;font-weight:500}
.side nav a .bar{position:absolute;left:0;top:50%;height:24px;width:3px;transform:translateY(-50%);border-radius:0 3px 3px 0;background:var(--blue4);opacity:0}
.side nav a.on .bar{opacity:1}
.side-foot{border-top:1px solid rgba(255,255,255,.1);padding:16px;display:flex;align-items:center;gap:10px}
.side-foot .u-n{flex:1;min-width:0}
.conn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:help;flex-shrink:0}
.conn-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.2)}
.conn.ok .conn-dot{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.25)}
.conn.off .conn-dot{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.25)}
.u-n{margin:0;font-size:12.6px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-r{margin:2px 0 0;font-size:10.8px;color:#94a3b8}
.content{margin-left:256px}
.content>main{max-width:1400px;margin:0 auto;padding:32px}
/* ---------- header */
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.ph h1{margin:0;font-size:25.2px;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.15}
.ph p{margin:4px 0 0;font-size:12.6px;color:var(--mut);max-width:680px}
.acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* ---------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border-radius:6px;font-size:12.6px;font-weight:500;height:36px;padding:0 16px;border:1px solid var(--input);background:#fff;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:background .15s,border-color .15s}
.btn:hover{background:#f5f5f5}
.btn.pri{background:var(--pri);border-color:var(--pri);color:#fafafa}
.btn.pri:hover{background:#2b2b2b}
.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.blue:hover{background:#1e40af}
.btn.ghost{border-color:transparent;background:transparent;box-shadow:none}
.btn.ghost:hover{background:#f5f5f5}
.btn.sm{height:32px;padding:0 12px;font-size:10.8px}
.btn.xs{height:28px;padding:0 8px;font-size:10.8px;gap:4px}
.btn.icon{width:32px;padding:0}
.btn.danger{color:var(--bad)}
.btn:disabled{opacity:.5;pointer-events:none}
.btn svg.ic{width:16px;height:16px}
.btn.sm svg.ic,.btn.xs svg.ic{width:14px;height:14px}
.link{color:var(--blue);cursor:pointer}
.link:hover{text-decoration:underline}
/* ---------- forms */
input[type=text],input[type=password],input[type=number],input[type=date],input:not([type]),select,textarea{height:36px;border:1px solid var(--input);border-radius:6px;background:#fff;padding:4px 12px;font-size:12.6px;box-shadow:0 1px 2px rgba(0,0,0,.04);min-width:0;outline:none}
textarea{height:auto}
input:focus,select:focus,textarea:focus{border-color:#a3a3a3;box-shadow:0 0 0 2px rgba(10,10,10,.08)}
select{padding-right:28px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--pri);cursor:pointer;vertical-align:middle}
.fld{display:block;margin-bottom:14px}
.fld>span{display:block;margin-bottom:6px;font-size:12.6px;font-weight:500;color:#334155}
.fld input,.fld select,.fld textarea{width:100%}
.fld small{display:block;margin-top:4px;color:var(--mut);font-size:10.8px}
.search{position:relative;flex:1;min-width:220px}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--mut2)}
.search input{width:100%;padding-left:36px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;margin-bottom:16px}
/* ---------- cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04)}
.card-h{padding:24px 24px 6px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card-t{font-size:14.4px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.card-d{font-size:12.6px;color:#737373;margin-top:2px}
.card-b{padding:18px 24px 24px}
.box{background:#fff;border:1px solid var(--line);border-radius:12px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.span2{grid-column:span 2}
.stack>*+*{margin-top:20px}
/* ---------- kpi */
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:flex-start}
.kpi .l{font-size:10.8px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);margin:0}
.kpi .v{margin:8px 0 0;font-size:21.6px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.kpi .s{margin:4px 0 0;font-size:10.8px;color:var(--mut)}
.kpi-ic{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.k-slate{background:#f1f5f9;color:#334155}.k-amber{background:#fef3c7;color:#b45309}.k-rose{background:#ffe4e6;color:#be123c}.k-blue{background:#dbeafe;color:#1d4ed8}.k-green{background:#d1fae5;color:#047857}
.mini{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px}
.mini .l{margin:0;font-size:10.8px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
.mini .v{margin:4px 0 0;font-size:18px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.mini.hl{border-color:var(--infobd);background:rgba(239,246,255,.6)}
/* ---------- table */
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table{width:100%;border-collapse:collapse;font-size:12.6px}
th{height:40px;padding:0 10px;text-align:left;font-weight:500;color:#737373;white-space:nowrap;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:1}
td{padding:10px;border-bottom:1px solid var(--line2);vertical-align:middle;color:#475569}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:rgba(245,245,245,.6)}
tr.sel td{background:#eff6ff !important}
td.strong,.strong{color:var(--ink);font-weight:500}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.r{text-align:right}
.sub{font-size:10.8px;color:var(--mut)}
.empty{text-align:center;color:var(--mut);padding:40px 16px}
.empty b{display:block;color:var(--ink2);font-size:13.5px;margin-bottom:4px}
/* ---------- badges */
.bd{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:2px 10px;font-size:10.8px;font-weight:500;border:1px solid transparent;white-space:nowrap}
.bd.ok{background:var(--okbg);color:var(--ok);border-color:var(--okbd)}
.bd.warn{background:var(--warnbg);color:var(--warn);border-color:var(--warnbd)}
.bd.bad{background:var(--badbg);color:var(--bad);border-color:var(--badbd)}
.bd.info{background:var(--infobg);color:var(--info);border-color:var(--infobd)}
.bd.neu{background:#f8fafc;color:#475569;border-color:var(--line)}
.chip{display:inline-block;border-radius:6px;padding:1px 8px;font-size:10.8px;background:#f1f5f9;color:#334155;margin:1px 2px 1px 0}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
.d-alta{background:#f43f5e}.d-media{background:#f59e0b}.d-baixa{background:#0ea5e9}
/* ---------- alerts */
.al{border-radius:8px;padding:10px 12px;font-size:12.15px;margin:8px 0;border:1px solid}
.al.warn{background:var(--warnbg);border-color:var(--warnbd);color:#78350f}
.al.bad{background:var(--badbg);border-color:var(--badbd);color:#881337}
.al.ok{background:var(--okbg);border-color:var(--okbd);color:#064e3b}
.al.info{background:var(--infobg);border-color:var(--infobd);color:#1e3a8a}
.att{display:block;border:1px solid var(--line);border-radius:8px;padding:12px;transition:border-color .15s,background .15s;cursor:pointer}
.att:hover{border-color:#93c5fd;background:rgba(239,246,255,.4)}
.att+.att{margin-top:12px}
.att .t{display:flex;align-items:center;gap:8px}
.att .t b{font-size:12.6px;font-weight:500;color:var(--ink2)}
.att p{margin:4px 0 0;font-size:10.8px;color:#475569}
.pchip{display:inline-block;border:1px solid var(--warnbd);background:var(--warnbg);color:#92400e;border-radius:8px;padding:6px 12px;font-size:10.8px;font-weight:500;cursor:pointer;margin:0 8px 8px 0}
.pchip:hover{background:#fef3c7}
/* ---------- tabs */
.tabs{display:inline-flex;gap:4px;background:#f1f5f9;border-radius:8px;padding:4px;margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:6px 12px;border-radius:6px;font-size:12.6px;font-weight:500;color:#64748b;cursor:pointer}
.tabs a.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* ---------- detail list */
.dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px}
.dl .k{font-size:9.9px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:0}
.dl .v{margin:4px 0 0;color:var(--ink2);font-weight:500;word-break:break-word}
/* ---------- drop */
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed #cbd5e1;border-radius:12px;background:rgba(248,250,252,.6);padding:40px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop.over{border-color:var(--blue4);background:rgba(239,246,255,.4)}
.drop svg.ic{width:32px;height:32px;color:#2563eb}
.drop p{margin:0}
/* ---------- modal */
.modal-bg{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;z-index:50;align-items:flex-start;justify-content:center;padding:32px 16px;overflow:auto}
.modal-bg.on{display:flex}
.modal{background:#fff;border-radius:12px;width:100%;max-width:1080px;padding:24px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.modal.sm{max-width:560px}
.modal h2{margin:0;font-size:16.2px;font-weight:600;color:var(--ink)}
.modal .x{float:right;border:0;background:none;cursor:pointer;color:var(--mut);padding:4px;border-radius:6px}
.modal .x:hover{background:#f1f5f9}
.mfoot{display:flex;align-items:center;gap:8px;justify-content:flex-end;border-top:1px solid var(--line);margin-top:20px;padding-top:16px;flex-wrap:wrap}
/* ---------- dropdown menu */
.menu{position:fixed;display:none;z-index:60;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);padding:4px;min-width:220px}
.menu.on{display:block}
.menu a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:12.6px;cursor:pointer;color:var(--ink2)}
.menu a:hover{background:#f1f5f9}
.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
/* ---------- misc */
.toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:10px;z-index:70;max-width:440px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:none;font-size:12.6px}
.toast.on{display:block}
.prog{height:8px;background:#e2e8f0;border-radius:6px;overflow:hidden;margin:10px 0}
.prog i{display:block;height:100%;background:var(--blue);transition:width .3s}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.mut{color:var(--mut)}
.small{font-size:10.8px}
.note{display:flex;gap:8px;align-items:flex-start;font-size:10.8px;color:var(--mut);margin-top:16px}
.selbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;position:sticky;top:0;z-index:5}
pre.code{background:#f8fafc;border:1px solid var(--line);padding:12px;border-radius:8px;max-height:55vh;overflow:auto;font-size:10.8px}
.memo{font-size:12.15px;line-height:1.7;color:#334155}
.memo b{color:var(--ink)}
.barline{display:flex;align-items:center;gap:8px;margin:6px 0}
.barline .b{flex:1;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}
.barline .b i{display:block;height:100%;background:var(--blue5)}
.pag{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin-top:12px}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.side{position:static;width:auto}.content{margin-left:0}.g2,.g3,.g4{grid-template-columns:1fr}.span2{grid-column:auto}.content>main{padding:20px 16px}}
@media print{.side,.acts,.filters,.tabs,.no-print{display:none !important}.content{margin:0}.content>main{padding:0;max-width:none}.card,.tbl-wrap,.box{box-shadow:none;border-color:#ddd}body{background:#fff}}

.login-bg{position:fixed;inset:0;z-index:80;background:linear-gradient(160deg,#0B1F3A 0%,#13325c 100%);display:flex;align-items:center;justify-content:center;padding:16px}
.login-card{background:#fff;border-radius:14px;padding:28px;width:100%;max-width:380px;box-shadow:0 25px 50px -12px rgba(0,0,0,.4)}


/* ===================== Parte 2: componentes do emissor ===================== */
/* Emissor Atuar — folha de estilo única.
   Paleta: papel verde-acinzentado, tinta ardósia, verde-petróleo como cor de
   "carimbo" fiscal. Números sempre tabulares para CNPJs, séries e valores. */

:root {
  /* Paleta Atuar (guia visual dos sistemas Atuar Contabilidade) */
  --navy: #0B1F3A;
  --papel: #F8FAFC;
  --superficie: #FFFFFF;
  --tinta: #0F172A;
  --tinta-ink2: #1E293B;
  --tinta-2: #64748B;
  --tinta-3: #94A3B8;
  --linha: #E2E8F0;
  --linha2: #F1F5F9;
  --linha-forte: #E5E5E5;
  --pri: #171717;
  --petroleo: #1D4ED8;          /* azul: links, aba ativa, destaque */
  --petroleo-escuro: #0B1F3A;   /* navy */
  --petroleo-claro: #EFF6FF;    /* fundo informativo */
  --azul4: #60A5FA;
  --ok: #047857;
  --ok-fundo: #ECFDF5;
  --ok-borda: #A7F3D0;
  --alerta: #B45309;
  --alerta-fundo: #FFFBEB;
  --alerta-borda: #FDE68A;
  --erro: #BE123C;
  --erro-fundo: #FFF1F2;
  --erro-borda: #FECDD3;
  --info-borda: #BFDBFE;
  --foco: #1D4ED8;
  --raio: 6px;
  --raio-cartao: 12px;
  --raio-aviso: 8px;
  --sombra: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --fonte: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fonte-titulo: var(--fonte);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: 12.6px/1.5 var(--fonte);
  -webkit-font-smoothing: antialiased;
  color: var(--tinta);
  background: var(--papel);
}
a { color: var(--petroleo); text-underline-offset: 2px; }
a:hover { color: var(--petroleo-escuro); }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.num { font-variant-numeric: tabular-nums; letter-spacing: 0.01em; white-space: nowrap; }
[hidden] { display: none !important; }

h1, h2 { font-family: var(--fonte-titulo); font-weight: 600; line-height: 1.2; margin: 0; }
h1 { font-size: 25.2px; letter-spacing: -0.01em; }
h2 { font-size: 16.2px; margin-bottom: 14px; }

/* ------------------------------------------------------------- estrutura */
.estrutura { display: grid; grid-template-columns: 232px 1fr; min-height: 100vh; }

.lateral {
  background: var(--petroleo-escuro);
  color: #d7e6e4;
  display: flex;
  flex-direction: column;
  padding: 20px 14px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
.marca-sistema {
  display: flex; gap: 10px; align-items: center;
  color: #fff; text-decoration: none; padding: 4px 8px 22px;
}
.marca-sistema strong { display: block; font-family: var(--fonte-titulo); font-size: 17.1px; }
.marca-sistema small { display: block; color: #9fc0bc; font-size: 11.25px; }
.logo {
  display: inline-grid; place-items: center;
  width: 34px; height: 34px; border-radius: 7px;
  background: #fff; color: var(--petroleo-escuro);
  font-family: var(--fonte-titulo); font-weight: 600; font-size: 17.1px;
}
.lateral nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.lateral nav a {
  color: #d7e6e4; text-decoration: none; padding: 8px 10px; border-radius: var(--raio);
}
.lateral nav a:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.lateral nav a[aria-current="page"] { background: rgba(255, 255, 255, 0.13); color: #fff; font-weight: 500; }
.nav-grupo { margin: 18px 10px 4px; font-size: 11.25px; color: #86aba7; }
.nav-futuro { padding: 5px 10px; color: #6f9590; font-size: 12.6px; }
.quem { border-top: 1px solid rgba(255, 255, 255, 0.12); padding: 14px 10px 0; font-size: 12.6px; }
.quem-nome { color: #fff; text-decoration: none; font-weight: 500; display: block; }
.quem-papel { color: #9fc0bc; font-size: 11.7px; }
.quem form { margin-top: 6px; }
.quem .link { color: #bcd6d3; padding: 0; }

.conteudo { padding: 28px 40px 64px; max-width: 1180px; width: 100%; }

/* ------------------------------------------------------------ cabeçalhos */
.cabecalho {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 16px;
  margin-bottom: 24px; flex-wrap: wrap;
}
.subtitulo { margin: 4px 0 0; color: var(--tinta-2); }
.trilha { margin: 0 0 4px; font-size: 12.6px; }
.trilha a { color: var(--tinta-2); }
.ficha { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin: 8px 0 0; color: var(--tinta-2); }
.cabecalho-empresa { margin-bottom: 16px; }
.acoes-status { display: flex; gap: 8px; }

.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 24px; }
.abas a {
  padding: 9px 14px; text-decoration: none; color: var(--tinta-2);
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.abas a:hover { color: var(--tinta); }
.abas a[aria-current="page"] { color: var(--petroleo); border-color: var(--petroleo); font-weight: 500; }

/* ----------------------------------------------------- contadores do painel */
.faixa-status {
  display: grid; grid-template-columns: repeat(4, 1fr);
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
  margin-bottom: 32px;
}
.contador {
  padding: 18px 20px; text-decoration: none; color: var(--tinta);
  border-left: 1px solid var(--linha); display: flex; flex-direction: column;
}
.contador:first-child { border-left: 0; }
a.contador:hover { background: var(--petroleo-claro); }
.contador-num { font-family: var(--fonte-titulo); font-size: 32.4px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.contador-rotulo { color: var(--tinta-2); font-size: 12.6px; }
.contador-alerta .contador-num { color: var(--alerta); }
.contador-quieto .contador-num { color: var(--tinta-3); }

.bloco { margin-bottom: 36px; }
.vazio { color: var(--tinta-2); background: var(--superficie); border: 1px dashed var(--linha-forte); border-radius: var(--raio); padding: 18px 20px; margin: 0; }
.secundario { display: block; color: var(--tinta-2); font-size: 12.15px; }
span.secundario { display: inline; }
td .secundario { display: block; }

.linha-tempo { list-style: none; margin: 0; padding: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.linha-tempo li { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 10px 16px; border-top: 1px solid var(--linha); }
.linha-tempo li:first-child { border-top: 0; }
.linha-tempo time { color: var(--tinta-2); font-variant-numeric: tabular-nums; font-size: 12.6px; }

/* ----------------------------------------------------------------- tabelas */
.tabela { width: 100%; border-collapse: collapse; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.tabela th { text-align: left; font-weight: 500; font-size: 12.15px; color: var(--tinta-2); padding: 10px 14px; background: #f7f9f8; border-bottom: 1px solid var(--linha); }
.tabela td { padding: 11px 14px; border-top: 1px solid var(--linha); vertical-align: top; }
.tabela tbody tr:first-child td { border-top: 0; }
.tabela .acao { text-align: right; white-space: nowrap; }
.linha-clicavel { cursor: pointer; }
.linha-clicavel:hover td { background: #f6faf9; }
.linha-apagada td { color: var(--tinta-3); }
.nome-empresa { font-weight: 500; text-decoration: none; }
.nome-empresa:hover { text-decoration: underline; }

/* ------------------------------------------------------ selos e indicadores */
.selo { display: inline-block; font-size: 11.7px; padding: 1px 9px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.selo-ativa { color: var(--ok); border-color: #a8d1b8; background: var(--ok-fundo); }
.selo-bloqueada { color: var(--erro); border-color: #ebb5ae; background: var(--erro-fundo); }
.selo-inativa { color: var(--tinta-2); border-color: var(--linha-forte); background: #eef1f0; }

.cert { font-size: 12.6px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cert::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 7px; vertical-align: 1px; }
.cert-ok::before { background: var(--ok); }
.cert-alerta { color: var(--alerta); }
.cert-alerta::before { background: #d89229; }
.cert-vencido, .cert-falta { color: var(--erro); }
.cert-vencido::before, .cert-falta::before { background: var(--erro); }

.modulos { display: inline-flex; gap: 4px; flex-wrap: nowrap; white-space: nowrap; }
.mod { font-size: 11.25px; padding: 0 7px; border-radius: 4px; background: var(--petroleo-claro); color: var(--petroleo-escuro); font-weight: 500; }
.mod-nenhum { background: transparent; color: var(--tinta-3); font-weight: 400; padding: 0; }

/* ------------------------------------------------------------------ avisos */
.aviso { padding: 11px 14px; border-radius: var(--raio); margin: 0 0 18px; border: 1px solid; }
.aviso-ok { background: var(--ok-fundo); border-color: #a8d1b8; color: #1d5735; }
.aviso-erro { background: var(--erro-fundo); border-color: #ebb5ae; color: #87271f; }
.aviso-alerta { background: var(--alerta-fundo); border-color: #ecca93; color: #74440b; }

/* -------------------------------------------------------------- formulários */
.formulario { max-width: 940px; }
.formulario.estreito { max-width: 480px; }
fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.grupo {
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 18px 20px 20px; margin-bottom: 16px;
}
.grupo legend { font-family: var(--fonte-titulo); font-weight: 600; font-size: 14.4px; padding: 0 6px; margin-left: -6px; }
.grade { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px 16px; }
.c-1 { grid-column: span 1; } .c-2 { grid-column: span 2; } .c-3 { grid-column: span 3; }
.c-4 { grid-column: span 4; } .c-6 { grid-column: span 6; } .c-7 { grid-column: span 7; }
.c-8 { grid-column: span 8; } .c-12 { grid-column: span 12; }
.c-5 { grid-column: span 5; } .c-9 { grid-column: span 9; } .c-10 { grid-column: span 10; }
.c-1 select { padding-left: 6px; padding-right: 2px; }

.campo { display: flex; flex-direction: column; gap: 5px; margin-bottom: 0; }
.formulario > .campo, .acesso-form .campo, .grupo > .campo { margin-bottom: 14px; }
.campo label, .rotulo-grupo { font-size: 12.6px; font-weight: 500; color: var(--tinta); }
.obrig { color: var(--erro); }
input[type="text"], input[type="email"], input[type="password"], input[type="tel"],
input[type="number"], input[type="search"], input:not([type]), select {
  font: inherit; color: inherit; width: 100%;
  padding: 8px 10px; background: #fff;
  border: 1px solid var(--linha-forte); border-radius: var(--raio);
  min-height: 38px;
}
input[type="file"] { font: inherit; padding: 6px 0; }
input:disabled, select:disabled { background: #f0f3f2; color: var(--tinta-2); }
input:focus, select:focus { border-color: var(--petroleo); outline: 2px solid rgba(15, 94, 90, 0.18); outline-offset: 0; }
input[aria-busy="true"] { background: #f4f9f8 linear-gradient(90deg, transparent, rgba(15, 94, 90, 0.1), transparent) 0 0 / 200% 100%; animation: carregando 1s linear infinite; }
@keyframes carregando { to { background-position: -200% 0; } }
.ajuda { margin: 0; font-size: 11.7px; color: var(--tinta-2); }
.erro-campo { margin: 0; font-size: 11.7px; color: var(--erro); font-weight: 500; }
.com-erro input, .com-erro select { border-color: var(--erro); }
.texto-apoio { color: var(--tinta-2); margin: 0 0 18px; }

.marca { display: flex; gap: 9px; align-items: flex-start; cursor: pointer; padding: 3px 0; }
.marca input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--petroleo); flex: none; }
.marca small { display: block; color: var(--tinta-2); font-size: 11.7px; }
.marcas-linha { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; align-content: end; }
.marcas-linha .rotulo-grupo { width: 100%; }
.lista-marcas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px 18px; margin-top: 4px; }

.alternador { display: inline-flex; border: 1px solid var(--linha-forte); border-radius: var(--raio); overflow: hidden; width: fit-content; }
.alternador label { cursor: pointer; }
.alternador input { position: absolute; opacity: 0; pointer-events: none; }
.alternador span { display: block; padding: 7px 16px; border-left: 1px solid var(--linha-forte); }
.alternador label:first-child span { border-left: 0; }
.alternador input:checked + span { background: var(--petroleo); color: #fff; }
.alternador input:focus-visible + span { outline: 2px solid var(--foco); outline-offset: -2px; }
.alternador-grande { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
.alternador-grande span { padding: 12px 16px; height: 100%; }
.alternador-grande small { display: block; font-size: 11.7px; color: var(--tinta-2); }
.alternador-grande input:checked + span small { color: #d4ebe8; }

.documentos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 16px; }
.documentos .grupo { margin-bottom: 0; }
.doc .grade { margin-top: 14px; }
.doc-desligado .doc-campos { opacity: 0.45; }
.canal p { margin: 2px 0 0; }

.barra-acoes { display: flex; gap: 16px; align-items: center; margin-top: 8px; }
.sem-borda { border: 0; padding: 0; margin: 0; }

/* ---------------------------------------------------------------- botões */
.botao {
  font: inherit; font-weight: 500; cursor: pointer; text-decoration: none; display: inline-flex;
  align-items: center; justify-content: center; gap: 6px;
  padding: 8px 16px; min-height: 38px; border-radius: var(--raio);
  border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--tinta);
}
.botao:hover { border-color: var(--tinta-3); color: var(--tinta); background: #f7f9f8; }
.botao-principal { background: var(--petroleo); border-color: var(--petroleo); color: #fff; }
.botao-principal:hover { background: var(--petroleo-escuro); border-color: var(--petroleo-escuro); color: #fff; }
.botao-quieto { color: var(--tinta-2); }
.botao-perigo { color: var(--erro); border-color: #e2aaa3; }
.botao-perigo:hover { background: var(--erro-fundo); color: var(--erro); border-color: var(--erro); }
.botao-pequeno { padding: 4px 11px; min-height: 32px; font-size: 12.6px; }
.largo { width: 100%; }
.link { background: none; border: 0; font: inherit; color: var(--petroleo); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }

/* ---------------------------------------------------------- filtros da lista */
.filtros { display: flex; gap: 12px; align-items: flex-end; margin-bottom: 18px; flex-wrap: wrap; }
.filtros .campo label { font-size: 11.7px; color: var(--tinta-2); font-weight: 400; }
.campo-busca { flex: 1; min-width: 240px; max-width: 420px; }

/* ------------------------------------------------------------- certificado */
.colunas { display: grid; grid-template-columns: 1.1fr 1fr; gap: 28px; align-items: start; }
.certificado-cartao {
  display: grid; grid-template-columns: 120px 1fr; gap: 20px;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 20px; margin-bottom: 14px;
}
.validade {
  border: 2px solid var(--petroleo); border-radius: 50%; width: 112px; height: 112px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: var(--petroleo); text-align: center;
}
.validade-dias { font-family: var(--fonte-titulo); font-size: 30.6px; font-weight: 600; line-height: 1; }
.validade-rotulo { font-size: 10.8px; line-height: 1.2; max-width: 80px; margin-top: 4px; }
.certificado-alerta .validade { border-color: #d89229; color: var(--alerta); }
.ficha-dados { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; font-size: 12.6px; }
.ficha-dados dt { color: var(--tinta-2); }
.ficha-dados dd { margin: 0; }

/* ------------------------------------------------------------------ acesso */
.tela-acesso { background: var(--petroleo-escuro); }
.acesso { min-height: 100vh; display: grid; place-content: center; gap: 28px; padding: 32px 16px; }
.acesso-marca { display: flex; gap: 12px; align-items: center; color: #fff; }
.acesso-marca p { margin: 0; }
.acesso-sistema { font-family: var(--fonte-titulo); font-size: 19.8px; font-weight: 600; }
.acesso-escritorio { color: #9fc0bc; }
.acesso-form { background: var(--superficie); border-radius: 10px; padding: 28px; width: min(400px, calc(100vw - 32px)); }
.acesso-form h1 { font-size: 21.6px; margin-bottom: 18px; }
.acesso-form .botao { margin: 6px 0 14px; }
.erro-pagina { max-width: 520px; }
.erro-pagina h1 { margin-bottom: 10px; }
.acesso .erro-pagina { background: var(--superficie); padding: 28px; border-radius: 10px; }

/* -------------------------------------------------------------- responsivo */
@media (max-width: 1000px) {
  .documentos, .colunas { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .estrutura { grid-template-columns: 1fr; }
  .lateral { position: static; height: auto; padding: 12px 16px; }
  .lateral nav { flex-direction: row; flex-wrap: wrap; }
  .nav-grupo, .nav-futuro { display: none; }
  .marca-sistema { padding-bottom: 10px; }
  .quem { display: flex; gap: 12px; align-items: baseline; padding-top: 10px; }
  .quem form { margin: 0 0 0 auto; }
  .conteudo { padding: 20px 16px 48px; }
  .grade { grid-template-columns: 1fr 1fr; }
  .grade > * { grid-column: span 2; }
  .grade > .c-1, .grade > .c-2, .grade > .c-3 { grid-column: span 1; }
  .faixa-status { grid-template-columns: 1fr 1fr; }
  .contador:nth-child(3) { border-left: 0; }
  .contador:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .tabela, .tabela tbody, .tabela tr, .tabela td { display: block; }
  .tabela thead { display: none; }
  .tabela tr { border-top: 1px solid var(--linha); padding: 8px 0; }
  .tabela tbody tr:first-child { border-top: 0; }
  .tabela td { border: 0; padding: 3px 14px; }
  .tabela .acao { text-align: left; }
  .linha-tempo li { grid-template-columns: 1fr; gap: 2px; }
  .alternador-grande { grid-template-columns: 1fr; }
  .alternador-grande label:last-child span { border-left: 0; border-top: 1px solid var(--linha-forte); }
  .certificado-cartao { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  input[aria-busy="true"] { animation: none; }
}

/* ------------------------------------------------- dentro de uma empresa */
.empresa-atual {
  margin: 0 0 18px; padding: 12px 10px; border-radius: var(--raio);
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.14);
  display: flex; flex-direction: column; gap: 1px;
}
.empresa-atual-rotulo { font-size: 10.8px; color: #9fc0bc; }
.empresa-atual strong { color: #fff; font-weight: 600; line-height: 1.3; }
.empresa-atual .num { font-size: 11.7px; color: #bcd6d3; }
.sair-empresa { margin: 0 0 14px; }
.botao-lateral {
  width: 100%; font: inherit; font-size: 12.6px; cursor: pointer; text-align: left;
  padding: 8px 10px; border-radius: var(--raio);
  background: transparent; color: #d7e6e4; border: 1px solid rgba(255, 255, 255, 0.22);
}
.botao-lateral:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.lateral nav .nav-grupo:first-child { margin-top: 0; }

.acoes-cabecalho { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.emitir { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; margin-bottom: 32px; }
.emitir-cartao {
  display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: var(--tinta);
  background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--petroleo);
  border-radius: var(--raio); padding: 16px 18px;
}
.emitir-cartao:hover { border-color: var(--petroleo); color: var(--tinta); }
.emitir-sigla { font-family: var(--fonte-titulo); font-size: 23.4px; font-weight: 600; color: var(--petroleo); line-height: 1.1; }
.emitir-nome { color: var(--tinta-2); }
.emitir-meta { display: flex; justify-content: space-between; gap: 8px; align-items: center; margin-top: 12px; font-size: 12.15px; color: var(--tinta-2); flex-wrap: wrap; }
.ambiente { font-size: 11.25px; padding: 1px 8px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.ambiente-1 { color: var(--ok); border-color: #a8d1b8; background: var(--ok-fundo); }
.ambiente-2 { color: var(--alerta); border-color: #ecca93; background: var(--alerta-fundo); }
.bloco-curto { margin: -8px 0 16px; }
.botao:disabled { opacity: 0.55; cursor: not-allowed; }

.cartoes-empresa { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.cartao-empresa {
  width: 100%; text-align: left; font: inherit; color: var(--tinta); cursor: pointer;
  display: flex; flex-direction: column; gap: 4px; align-items: flex-start;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px;
}
.cartao-empresa:hover { border-color: var(--petroleo); }
.cartao-empresa strong { font-size: 15.3px; font-weight: 600; }
.cartao-empresa .num, .cartao-empresa > span { color: var(--tinta-2); }

/* ------------------------------------------------------ acesso do cliente */
.lista-acessos { list-style: none; margin: 0; padding: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.lista-acessos li { padding: 14px 16px; border-top: 1px solid var(--linha); display: flex; gap: 12px; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
.lista-acessos li:first-child { border-top: 0; }
.acesso-quem { display: flex; flex-direction: column; }
.acesso-desativado .acesso-quem strong, .acesso-desativado .acesso-quem > span:not(.secundario) { color: var(--tinta-3); }
.acesso-acoes summary { list-style: none; }
.acesso-acoes summary::-webkit-details-marker { display: none; }
.acesso-acoes[open] { width: 100%; }
.acesso-acoes[open] summary { margin-left: auto; width: fit-content; }
.acesso-painel { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--linha); display: flex; flex-direction: column; gap: 8px; }
.linha-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.linha-form input[type="password"] { flex: 1; min-width: 160px; min-height: 32px; padding: 4px 10px; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ------------------------------------------------- dashboard da empresa */
.cabecalho-dash { margin-bottom: 18px; }
.cartoes-dash { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-bottom: 22px; }
.cartao-dash {
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 4px 14px; align-items: center;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px;
}
.cartao-dash .botao { grid-column: 2; justify-self: start; }
.cartao-icone {
  grid-row: span 2; width: 46px; height: 46px; border-radius: 10px; display: grid; place-items: center;
  background: var(--petroleo-claro); color: var(--petroleo-escuro); font-family: var(--fonte-titulo); font-weight: 600; font-size: 12.6px;
}
.cartao-icone-nfe::before { content: "NF-e"; }
.cartao-icone-nfse::before { content: "NFS-e"; font-size: 10.8px; }
.cartao-icone-cte::before { content: "CT-e"; }
.cartao-icone-clientes::before { content: "CLI"; }
.cartao-icone-produtos::before { content: "PRD"; }
.cartao-icone-servicos::before { content: "SRV"; }
.cartao-info { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.cartao-titulo { color: var(--tinta-2); font-size: 12.6px; }
.cartao-qtd { font-family: var(--fonte-titulo); font-size: 23.4px; font-weight: 600; color: var(--petroleo); line-height: 1; }

.dash-colunas { display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; align-items: start; }
.painel-dash { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px 20px; }
.painel-dash h2 { font-size: 15.3px; }
.grafico-meses { width: 100%; height: auto; display: block; }
.grafico-grade { stroke: var(--linha); stroke-width: 1; }
.grafico-eixo { fill: var(--tinta-2); font-size: 9.9px; font-family: var(--fonte); }
.grafico-barra { fill: var(--petroleo); }
.tabela-compacta { border: 0; }
.tabela-compacta th, .tabela-compacta td { padding: 8px 10px; font-size: 12.6px; }
.vazio-celula { color: var(--tinta-2); text-align: center; padding: 22px !important; }
.direita { text-align: right; }

/* ----------------------------------------------------------- cadastros */
.nav-empresa .nav-grupo { margin-top: 14px; }
.abas-form { margin-bottom: 18px; }
.abas-form button {
  font: inherit; background: none; border: 0; cursor: pointer; padding: 9px 14px; color: var(--tinta-2);
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.abas-form button[aria-selected="true"] { color: var(--petroleo); border-color: var(--petroleo); font-weight: 500; }
.sub-grade { margin: 0; }
.sub-bloco { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--linha); }
.sub-titulo { margin: 0; font-weight: 500; font-size: 12.6px; color: var(--petroleo-escuro); }
.colunas-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.colunas-form .grupo { margin-bottom: 16px; }
textarea {
  font: inherit; color: inherit; width: 100%; padding: 8px 10px; background: #fff;
  border: 1px solid var(--linha-forte); border-radius: var(--raio); resize: vertical;
}
textarea:focus { border-color: var(--petroleo); outline: 2px solid rgba(15, 94, 90, 0.18); outline-offset: 0; }
.com-erro textarea { border-color: var(--erro); }
.alternador-pessoa { margin-bottom: 16px; }
.tabela-retencoes { margin-bottom: 12px; max-width: 520px; }
.tabela-retencoes th[scope="row"] { font-weight: 500; color: var(--tinta); background: transparent; border: 0; border-top: 1px solid var(--linha); width: 100px; }
.tabela-retencoes tbody tr:first-child th { border-top: 0; }
.tabela-retencoes input[inputmode] { max-width: 120px; min-height: 34px; padding: 5px 8px; }
.tabela-retencoes .marca { padding: 0; }
.dica-lc116 { margin: 0; padding: 8px 12px; border-radius: var(--raio); background: var(--petroleo-claro); color: var(--petroleo-escuro); font-size: 12.15px; }
.selo-retido { color: var(--alerta); border-color: #ecca93; background: var(--alerta-fundo); font-size: 10.8px; }

.menu-acoes { position: relative; display: inline-block; }
.menu-acoes summary { list-style: none; }
.menu-acoes summary::-webkit-details-marker { display: none; }
.menu-acoes-lista {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 5; min-width: 150px; text-align: left;
  background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio);
  box-shadow: 0 6px 18px rgba(28, 43, 48, 0.12); padding: 4px 0; display: flex; flex-direction: column;
}
.menu-acoes-lista a, .menu-acoes-lista button {
  display: block; padding: 7px 14px; text-decoration: none; color: var(--tinta); font: inherit; font-size: 12.6px;
  background: none; border: 0; text-align: left; cursor: pointer; width: 100%;
}
.menu-acoes-lista a:hover, .menu-acoes-lista button:hover { background: var(--papel); }
.menu-acoes-lista .link-perigo { color: var(--erro); }
.paginacao { display: flex; gap: 12px; align-items: center; justify-content: flex-end; margin-top: 12px; color: var(--tinta-2); font-size: 12.6px; }
.lista-relatorios { list-style: none; margin: 0 0 8px; padding: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.lista-relatorios li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--linha); }
.lista-relatorios li:first-child { border-top: 0; }
.bloco-curto-baixo { margin-top: 10px; }

@media (max-width: 1000px) {
  .dash-colunas, .colunas-form { grid-template-columns: 1fr; }
}
.tabela .direita { text-align: right; }

/* ------------------------------------- menu da empresa (seções + painel) */
.nav-secoes { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.secao {
  display: flex; align-items: center; gap: 12px; padding: 10px 10px; border-radius: var(--raio);
  color: #d7e6e4; text-decoration: none; cursor: pointer; list-style: none; font-weight: 500;
}
.secao::-webkit-details-marker { display: none; }
.secao::after { content: none; }
details.secao-grupo > .secao::after {
  content: ""; margin-left: auto; width: 7px; height: 7px; border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor; transform: rotate(45deg); opacity: 0.7;
}
.secao:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.secao-ativa, details[open] > .secao { background: rgba(255, 255, 255, 0.13); color: #fff; }
.icone { width: 24px; height: 24px; flex: none; }
.submenu {
  position: fixed; top: 0; left: 232px; z-index: 40; width: 280px; height: 100vh; overflow-y: auto;
  background: var(--superficie); border-right: 1px solid var(--linha);
  box-shadow: 12px 0 28px rgba(28, 43, 48, 0.14); padding: 22px 12px;
  display: flex; flex-direction: column; gap: 2px;
}
.submenu-titulo { margin: 0 10px 12px; font-family: var(--fonte-titulo); font-weight: 600; font-size: 15.3px; color: var(--tinta); }
.submenu a {
  display: flex; align-items: center; gap: 14px; padding: 11px 10px; border-radius: var(--raio);
  color: var(--tinta); text-decoration: none;
}
.submenu a:hover { background: var(--papel); }
.submenu a[aria-current="page"] { background: var(--petroleo-claro); color: var(--petroleo-escuro); font-weight: 500; }
.icone-sub { width: 26px; height: 26px; flex: none; color: var(--petroleo); }
@media (prefers-reduced-motion: no-preference) {
  details[open] > .submenu { animation: abre-submenu 0.14s ease-out; }
  @keyframes abre-submenu { from { transform: translateX(-10px); opacity: 0; } }
}
@media (max-width: 820px) {
  .nav-secoes { flex-direction: row; flex-wrap: wrap; }
  .secao span { font-size: 12.6px; }
  .submenu { left: 0; top: auto; bottom: 0; width: 100%; height: auto; max-height: 70vh; box-shadow: 0 -12px 28px rgba(28, 43, 48, 0.18); }
}
.lateral nav .submenu a { color: var(--tinta); padding: 11px 10px; }
.lateral nav .submenu a:hover { background: var(--papel); color: var(--tinta); }
.lateral nav .submenu a[aria-current="page"] { background: var(--petroleo-claro); color: var(--petroleo-escuro); }
input[type="date"] { font: inherit; color: inherit; width: 100%; padding: 8px 10px; background: #fff; border: 1px solid var(--linha-forte); border-radius: var(--raio); min-height: 38px; }
.formulario.grupo > .botao { margin-top: 16px; }
/* seções do menu da empresa um pouco menores */
.secao { font-size: 12.6px; padding: 8px 10px; gap: 10px; }
.secao .icone { width: 20px; height: 20px; }



/* =====================================================================
   Ajustes de integração (menu com submenu, números, links)
   ===================================================================== */
.side a:hover, .kpi:hover, .btn:hover { text-decoration: none; }
.side .brand { color: inherit; }
.side nav summary { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px;
  font-size: 12.6px; color: #cbd5e1; cursor: pointer; margin-bottom: 4px; list-style: none; transition: background .15s, color .15s; }
.side nav summary::-webkit-details-marker { display: none; }
.side nav summary::after { content: ""; margin-left: auto; width: 6px; height: 6px; border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor; transform: rotate(45deg); opacity: .6; }
.side nav summary:hover { background: rgba(255,255,255,.05); color: #fff; }
.side nav summary.on, .side nav details[open] > summary { background: rgba(255,255,255,.1); color: #fff; font-weight: 500; }
.side nav summary .bar { position: absolute; left: 0; top: 50%; height: 24px; width: 3px; transform: translateY(-50%);
  border-radius: 0 3px 3px 0; background: var(--blue4); opacity: 0; }
.side nav summary.on .bar { opacity: 1; }
.side .submenu { left: 256px; }
.side .submenu a { color: var(--ink2); margin: 0; }
.side .submenu a:hover { background: #f1f5f9; color: var(--ink); }
.side .submenu a[aria-current="page"] { background: #f1f5f9; color: var(--ink); font-weight: 500; }
.empresa-atual { margin: 0 12px 16px; padding: 12px; border-radius: 8px; background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1); display: flex; flex-direction: column; gap: 1px; }
.empresa-atual-rotulo { font-size: 9.9px; text-transform: uppercase; letter-spacing: .06em; color: #94a3b8; }
.empresa-atual strong { color: #fff; font-weight: 600; font-size: 12.6px; line-height: 1.3; }
.empresa-atual-cnpj { color: #cbd5e1; font-size: 10.8px; font-variant-numeric: tabular-nums; }
.sair-empresa { margin: 0 12px 12px; }
.botao-lateral { width: 100%; height: 36px; text-align: left; padding: 0 12px; border-radius: 8px; background: transparent;
  color: #cbd5e1; border: 1px solid rgba(255,255,255,.15); cursor: pointer; font-size: 12.6px; }
.botao-lateral:hover { background: rgba(255,255,255,.06); color: #fff; }
.u-box { flex: 1; min-width: 0; }
.u-r a { color: #cbd5e1; }
.u-r a:hover { color: #fff; }
.form-inline { display: inline; }
.link-sair { background: none; border: 0; padding: 0; color: #cbd5e1; cursor: pointer; font-size: 10.8px; }
.link-sair:hover { color: #fff; text-decoration: underline; }
.num { text-align: inherit; }
td.direita, th.direita, .direita { text-align: right; }
.kpis { margin-bottom: 24px; }
a.kpi { color: inherit; transition: border-color .15s; }
a.kpi:hover { border-color: #cbd5e1; }
.kpi-acao { margin-top: 10px; }
.kpi-ic svg.ic { width: 20px; height: 20px; }
/* login */
.login-card h1 { font-size: 19.8px; font-weight: 600; margin: 0 0 16px; color: var(--ink); }
.login-marca { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.login-marca img { width: 44px; height: 44px; object-fit: contain; }
.login-sistema { margin: 0; font-size: 14.4px; font-weight: 600; color: var(--ink); }
.login-escritorio { margin: 0; font-size: 8.55px; text-transform: uppercase; letter-spacing: .14em; color: var(--mut); }
.login-card .botao { width: 100%; margin: 6px 0 12px; }

/* componentes do emissor no padrão Atuar */
a { color: var(--blue); }
h1 { font-size: 25.2px; font-weight: 600; letter-spacing: -.02em; color: var(--ink); line-height: 1.15; }
h2 { font-size: 14.4px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.subtitulo, .ficha { color: var(--mut); font-size: 12.6px; }
.botao { height: 36px; min-height: 36px; padding: 0 16px; font-size: 12.6px; border-radius: 6px; border: 1px solid var(--input);
  box-shadow: 0 1px 2px rgba(0,0,0,.05); background: #fff; color: #0a0a0a; }
.botao:hover { background: #f5f5f5; border-color: var(--input); text-decoration: none; color: #0a0a0a; }
.botao-principal { background: var(--pri); border-color: var(--pri); color: #fafafa; }
.botao-principal:hover { background: #2b2b2b; border-color: #2b2b2b; color: #fafafa; }
.botao-azul { background: var(--blue); border-color: var(--blue); color: #fff; }
.botao-azul:hover { background: #1e40af; color: #fff; }
.botao-pequeno { height: 32px; min-height: 32px; padding: 0 12px; font-size: 10.8px; }
.botao-perigo { color: var(--bad); }
input[type="email"], input[type="tel"], input[type="search"] { height: 36px; border: 1px solid var(--input); border-radius: 6px;
  background: #fff; padding: 4px 12px; font-size: 12.6px; box-shadow: 0 1px 2px rgba(0,0,0,.04); outline: none; }
input, select, textarea { min-height: 36px; }
input:focus, select:focus, textarea:focus { border-color: #a3a3a3; outline: none; box-shadow: 0 0 0 2px rgba(10,10,10,.08); }
.campo label, .rotulo-grupo { font-size: 12.6px; font-weight: 500; color: #334155; }
.ajuda { font-size: 10.8px; color: var(--mut); }
.marca input { accent-color: var(--pri); }
.grupo, .painel-dash, .lista-acessos, .lista-relatorios, .linha-tempo, .certificado-cartao, .cartao-empresa {
  border-radius: 12px; border: 1px solid var(--line); background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04); }
.grupo { padding: 20px 24px 24px; }
.grupo legend { font-size: 14.4px; font-weight: 600; color: var(--ink); }
.painel-dash { padding: 24px; }
.tabela { border: 1px solid var(--line); border-radius: 12px; background: #fff; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.tabela th { background: #fff; color: #737373; font-weight: 500; border-bottom: 1px solid var(--line); }
.tabela td { color: #475569; border-top: 0; border-bottom: 1px solid var(--line2); }
.tabela-compacta { border: 0; }
.nome-empresa { color: var(--ink); font-weight: 500; }
.vazio { border-radius: 12px; border: 1px solid var(--line); background: #fff; text-align: center; color: var(--mut); padding: 32px 16px; }
.vazio-celula { text-align: center; color: var(--mut); padding: 32px 16px !important; }
.filtros { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.filtros .campo label { font-size: 10.8px; color: var(--mut); }
.abas, .abas-form { display: inline-flex; gap: 4px; background: #f1f5f9; border-radius: 8px; padding: 4px; border-bottom: 0; margin-bottom: 20px; flex-wrap: wrap; }
.abas a, .abas-form button { padding: 6px 12px; border-radius: 6px; font-size: 12.6px; font-weight: 500; color: #64748b; border: 0; margin: 0; }
.abas a:hover { text-decoration: none; color: var(--ink); }
.abas a[aria-current="page"], .abas-form button[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.selo { border-radius: 6px; padding: 2px 10px; font-size: 10.8px; font-weight: 500; }
.selo-ativa { background: var(--okbg); color: var(--ok); border-color: var(--okbd); }
.selo-bloqueada { background: var(--badbg); color: var(--bad); border-color: var(--badbd); }
.selo-inativa { background: #f8fafc; color: #475569; border-color: var(--line); }
.selo-retido { background: var(--warnbg); color: var(--warn); border-color: var(--warnbd); }
.ambiente-1 { background: var(--okbg); color: var(--ok); border-color: var(--okbd); border-radius: 6px; }
.ambiente-2 { background: var(--warnbg); color: var(--warn); border-color: var(--warnbd); border-radius: 6px; }
.mod { background: #f1f5f9; color: #334155; border-radius: 6px; font-size: 10.8px; padding: 1px 8px; font-weight: 400; }
.aviso { border-radius: 8px; font-size: 12.15px; padding: 10px 12px; }
.aviso-ok { background: var(--okbg); border-color: var(--okbd); color: #064e3b; }
.aviso-alerta { background: var(--warnbg); border-color: var(--warnbd); color: #78350f; }
.aviso-erro { background: var(--badbg); border-color: var(--badbd); color: #881337; }
.aviso-info { background: var(--infobg); border-color: var(--infobd); color: #1e3a8a; }
.dica-lc116 { background: var(--infobg); color: #1e3a8a; border: 1px solid var(--infobd); border-radius: 8px; }
.cert-ok::before { background: #22c55e; }
.cert-alerta { color: var(--warn); } .cert-alerta::before { background: #f59e0b; }
.cert-vencido, .cert-falta { color: var(--bad); } .cert-vencido::before, .cert-falta::before { background: #ef4444; }
.validade { border-color: #3b82f6; color: var(--ink); }
.grafico-barra { fill: #3b82f6; }
.icone-sub { width: 20px; height: 20px; color: var(--ink2); }
.menu-acoes-lista { border-radius: 8px; border-color: var(--line); box-shadow: 0 10px 30px rgba(0,0,0,.12); padding: 4px; }
.menu-acoes-lista a, .menu-acoes-lista button { border-radius: 6px; padding: 8px 10px; }
.menu-acoes-lista a:hover, .menu-acoes-lista button:hover { background: #f1f5f9; text-decoration: none; }
@media (max-width: 860px) { .side .submenu { left: 0; } }
a.btn, a.botao { color: #0a0a0a; }
a.btn.pri, a.botao-principal { color: #fafafa; }
.conn.alerta .conn-dot { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,.25); }
.acoes-linha { display: inline-flex; gap: 6px; }
.itens-copia { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; margin: 4px 0 14px; display: grid; gap: 4px; }
.modal .campo { margin: 16px 0 14px; }
.modal-bg.on { display: flex; }
.campo-com-botao { display: flex; gap: 8px; }
.campo-com-botao input { flex: 1; min-width: 0; }
.consulta-ok { color: var(--ok); }

/* ---------- listas pesquisáveis (NCM, CNAE, NBS) ---------- */
.busca-lista{position:relative}
.busca-lista>input{width:100%}
.busca-opcoes{position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:100%;width:max(100%,560px);max-width:min(760px,92vw);max-height:340px;overflow:auto;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 32px rgba(15,23,42,.14)}
.busca-opcoes li{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:7px 28px 7px 10px;border-radius:6px;cursor:pointer;font-size:11.7px;line-height:1.35}
.busca-opcoes li b{font-variant-numeric:tabular-nums;color:#0B1F3A;white-space:nowrap}
.busca-opcoes li span{color:#0f172a}
.busca-opcoes li small{grid-column:2;color:#64748b;font-size:10.35px}
.busca-opcoes li i{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal;color:#94a3b8;font-size:14.4px}
.busca-opcoes li.grupo span{color:#334155}
.busca-opcoes li:hover,.busca-opcoes li.ativo{background:#EFF6FF}
.busca-opcoes li.busca-vazio{display:block;color:#64748b;cursor:default}
.busca-opcoes li.busca-vazio:hover{background:none}
.busca-cclass{color:#1D4ED8}
@media (max-width:640px){.busca-opcoes{width:100%}}
.lista-cnaes{margin:6px 0 10px;padding:0;list-style:none;display:grid;gap:4px;font-size:11.7px}
.lista-cnaes li{padding:6px 10px;background:#F8FAFC;border:1px solid #e2e8f0;border-radius:8px}
.lista-cnaes li b{font-variant-numeric:tabular-nums;color:#0B1F3A;margin-right:6px}
textarea[data-atividades]{font-variant-numeric:tabular-nums}
.campo [data-usar-cnaes]{width:auto;align-self:flex-start;margin-top:8px}

/* ---------- NF-e: lista, emissão e detalhe ---------- */
.selo-nota-rascunho{background:#f8fafc;color:#475569;border-color:var(--line)}
.selo-nota-processando{background:var(--infobg);color:var(--info);border-color:var(--infobd)}
.selo-nota-autorizada{background:var(--okbg);color:var(--ok);border-color:var(--okbd)}
.selo-nota-rejeitada,.selo-nota-denegada{background:var(--badbg);color:var(--bad);border-color:var(--badbd)}
.selo-nota-cancelada{background:#f1f5f9;color:#64748b;border-color:#cbd5e1;text-decoration:line-through}
.tabela tfoot td{border-top:1px solid var(--line);font-size:11.7px;padding-top:10px}
.vazio .botao{margin-top:12px}
.nota-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}
.nota-principal{min-width:0}
.nota-totais{position:sticky;top:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.nota-totais h2{font-size:13.5px;margin:0 0 10px}
.nota-totais dl{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin:0;font-size:11.7px}
.nota-totais dt{color:var(--mut)}
.nota-totais dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.nota-totais .total{font-size:14.4px;font-weight:700;color:#0a0a0a;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.nota-botoes{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.nota-botoes .botao{width:100%;justify-content:center}
.nota-botoes .link{text-align:center}
.tabela-rolagem{overflow-x:auto;margin-bottom:10px}
.tabela-itens{min-width:640px;table-layout:fixed;width:100%}
.tabela-itens td{vertical-align:top;padding:6px 6px}
.tabela-itens input{width:100%;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.tabela-itens input.direita{text-align:right}
.tabela-itens .col-prod{width:auto}
.tabela-itens .item-desc{margin-top:4px;font-size:10.8px;height:30px;color:var(--mut)}
.tabela-itens th:nth-child(2){width:66px}.tabela-itens th:nth-child(3){width:66px}
.tabela-itens th:nth-child(4){width:100px}.tabela-itens th:nth-child(5){width:84px}
.tabela-itens th:nth-child(6){width:92px}.tabela-itens th:nth-child(7){width:40px}
.tabela-itens th{padding:8px 6px;font-size:10.8px}
.tabela-itens .item-total{padding-top:14px;white-space:nowrap}
.linha-pag{align-items:end;margin-bottom:6px}
.linha-pag-acao{display:flex;align-items:flex-end;padding-bottom:4px}
.volumes{margin-top:4px}
.grade-detalhe{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:16px 0}
.grade-detalhe .grupo{margin:0}
.grade-detalhe h2,.grupo>h2{font-size:13.5px;margin:0 0 12px}
.chave{word-break:break-all;font-size:11.7px}
.totais-ficha dd{text-align:right}
.grupo-perigo{border-color:var(--badbd)}
@media (max-width:980px){.nota-layout{grid-template-columns:1fr}.nota-totais{position:static}}
.ficha-dados dd.chave{white-space:normal;word-break:break-all;font-variant-numeric:tabular-nums}
.pre-linha{white-space:pre-line}
.busca-opcoes li.busca-todos{display:block;color:var(--azul,#1d4ed8);font-size:11.7px;cursor:pointer;border-top:1px solid var(--line,#e5e7eb)}


/* =====================================================================
   Parte 3 — Padrão visual Atuar v2 (marinho, marfim e ouro)
   Mesmo visual do Sistema Simples Nacional. Só aparência: nenhuma regra
   de funcionamento depende destas linhas.
   ===================================================================== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:local("Inter"),local("Inter Regular"),url("../fonts/Inter-Regular.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:local("Inter Medium"),url("../fonts/Inter-Medium.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:local("Inter SemiBold"),url("../fonts/Inter-SemiBold.woff") format("woff")}
:root{
  --navy:#1D2B3B; --navy2:#2A3B4F; --ivory:#FEFEFE; --gold:#957327; --gold-d:#7A5D1E; --gold-l:#C9A55A; --gold-xl:#E2C88E;
  --bg:#F7F6F2; --bg2:#FBFAF7; --card:#FEFEFE; --ink:#1D2B3B; --ink2:#1D2B3B; --mut:#6E6A60; --mut2:#9A958A;
  --line:#E7E4DC; --line2:#F0EDE6; --input:#DCD8CE; --pri:#1D2B3B; --blue:#7A5D1E; --blue5:#957327; --blue4:#C9A55A;
  --ok:#2F6B4F; --okbg:#EEF4EF; --okbd:#CFE1D5; --warn:#8A5A12; --warnbg:#FBF5E9; --warnbd:#EBDDBE;
  --bad:#9B2C2C; --badbg:#FBEEEE; --badbd:#EFCFCF; --info:#1D2B3B; --infobg:#F1F3F6; --infobd:#DDE2E8;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* nomes usados pelos componentes do emissor */
  --papel:#F7F6F2; --superficie:#FEFEFE; --tinta:#1D2B3B; --tinta-ink2:#1D2B3B; --tinta-2:#6E6A60; --tinta-3:#9A958A;
  --linha:#E7E4DC; --linha2:#F0EDE6; --linha-forte:#DCD8CE;
  --petroleo:#7A5D1E; --petroleo-escuro:#1D2B3B; --petroleo-claro:#F6F1E6; --azul4:#C9A55A;
  --ok-fundo:#EEF4EF; --ok-borda:#CFE1D5; --alerta:#8A5A12; --alerta-fundo:#FBF5E9; --alerta-borda:#EBDDBE;
  --erro:#9B2C2C; --erro-fundo:#FBEEEE; --erro-borda:#EFCFCF; --info-borda:#DDE2E8; --foco:#957327;
  --raio:12px; --raio-cartao:18px; --raio-aviso:12px; --sombra:none;
  --fonte:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --fonte-titulo:var(--fonte);
}
body{font:14px/1.55 var(--fonte);background:var(--bg);color:var(--ink)}
a{color:var(--gold-d)}
a:hover{color:#5E4716}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
h1{font-size:30px;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.2}
h2{font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:16px}

/* ---------- menu lateral */
.side{width:264px;background:var(--navy);color:#D9DEE5;padding:28px 16px 18px}
.side .brand{display:flex;align-items:center;gap:11px;padding:4px 8px 30px;color:inherit;text-decoration:none}
.brand-logo{width:42px;height:auto;display:block;flex-shrink:0}
.brand-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.brand-a,.brand-b{font-size:10.5px;letter-spacing:.08em;line-height:1.1;text-transform:uppercase;white-space:nowrap}
.brand-a{color:var(--gold)}
.brand-b{color:var(--ivory);font-weight:500}
.side nav{flex:1;overflow:auto;display:flex;flex-direction:column;gap:4px;margin:0 -4px;padding:0 4px}
.side nav>a,.side nav .grp{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;min-height:44px;margin:0;border:0;border-radius:10px;background:transparent;color:#D9DEE5;font:inherit;font-size:14px;font-weight:400;letter-spacing:.01em;text-align:left;cursor:pointer;text-decoration:none;transition:background .25s,color .25s}
.side nav>a:hover,.side nav .grp:hover{background:rgba(254,254,254,.06);color:var(--ivory)}
.side nav>a.on{background:rgba(254,254,254,.08);color:var(--ivory);font-weight:400}
.side nav>a.on::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--gold-l)}
.side nav .bar{display:none}
.side nav .grp.on,.side nav .open>.grp{color:var(--ivory)}
.side nav svg.ic{width:18px;height:18px;stroke-width:1.6}
.side nav .grp .chev{margin-left:auto;width:14px;height:14px;flex-shrink:0;opacity:.6;transition:transform .35s var(--ease),opacity .25s}
.side nav .open>.grp .chev{transform:rotate(90deg);opacity:1}
.side nav .secao-grupo{display:flex;flex-direction:column}
.side .submenu{position:static;width:auto;height:auto;padding:0;margin:0;background:transparent;border:0;box-shadow:none;overflow:visible;
  display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--ease)}
.side .open>.submenu{grid-template-rows:1fr}
.side .sub-in{overflow:hidden;min-height:0;display:flex;flex-direction:column;padding-left:44px}
.side nav .submenu a{position:relative;display:block;margin:0;padding:9px 12px;font-size:13.5px;font-weight:400;color:#AEB7C2;background:transparent;border-radius:8px;text-decoration:none;white-space:normal;line-height:1.4;
  opacity:0;transform:translateX(-14px);transition:opacity .3s ease,transform .4s var(--ease),color .2s,background .2s}
.side nav .submenu a:hover{color:var(--ivory);background:rgba(254,254,254,.05)}
.side nav .open>.submenu a{opacity:1;transform:none}
.side nav .open>.submenu a:nth-child(2){transition-delay:.05s,.05s,0s,0s}
.side nav .open>.submenu a:nth-child(3){transition-delay:.1s,.1s,0s,0s}
.side nav .open>.submenu a:nth-child(4){transition-delay:.15s,.15s,0s,0s}
.side nav .open>.submenu a:nth-child(5){transition-delay:.2s,.2s,0s,0s}
.side nav .open>.submenu a:nth-child(n+6){transition-delay:.25s,.25s,0s,0s}
.side nav .submenu a.on,.side nav .submenu a[aria-current="page"]{color:var(--gold-xl);background:rgba(254,254,254,.06);font-weight:400}
.side nav .submenu a.on::before{content:"";position:absolute;left:-14px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--gold-l)}
@media (prefers-reduced-motion:reduce){.side .submenu,.side nav .submenu a,.side nav .grp .chev{transition:none}}

.empresa-atual{margin:-10px 4px 22px;padding:14px 16px;border-radius:14px;background:rgba(254,254,254,.05);border:1px solid rgba(254,254,254,.09);gap:3px}
.empresa-atual-rotulo{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-l)}
.empresa-atual strong{color:var(--ivory);font-weight:500;font-size:13.5px;line-height:1.35}
.empresa-atual-cnpj{color:#AEB7C2;font-size:12px}
.sair-empresa{margin:12px 4px 0}
.botao-lateral{height:40px;padding:0 16px;border-radius:999px;background:transparent;color:#D9DEE5;border:1px solid rgba(254,254,254,.16);font-size:13px;text-align:center;transition:border-color .2s,color .2s}
.botao-lateral:hover{background:transparent;border-color:var(--gold-l);color:var(--gold-xl)}
.side-foot{border-top:1px solid rgba(254,254,254,.1);margin-top:16px;padding:16px 10px 0;gap:12px}
.conn-dot{width:8px;height:8px;background:#9AA4B1;box-shadow:0 0 0 4px rgba(154,164,177,.18)}
.conn.ok .conn-dot{background:#6FBF8E;box-shadow:0 0 0 4px rgba(111,191,142,.18)}
.conn.off .conn-dot{background:#E07A7A;box-shadow:0 0 0 4px rgba(224,122,122,.2)}
.conn.alerta .conn-dot{background:var(--gold-l);box-shadow:0 0 0 4px rgba(201,165,90,.2)}
.u-n{font-size:13.5px;font-weight:500;color:var(--ivory);line-height:1.35}
.u-r{font-size:12px;color:#AEB7C2}
.u-r a,.link-sair{color:#AEB7C2;font-size:12px}
.u-r a:hover,.link-sair:hover{color:var(--gold-xl);text-decoration:none}
.content{margin-left:264px}
.content>main{max-width:1320px;padding:44px 48px 64px}

/* ---------- cabeçalho das telas */
.cabecalho{align-items:flex-end;gap:20px;margin-bottom:28px}
.cabecalho h1{font-size:30px}
.trilha{margin:0 0 8px;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.trilha a{color:var(--gold-d);text-decoration:none}
.trilha a:hover{color:#5E4716}
.subtitulo,.ficha{margin-top:8px;font-size:15px;color:var(--mut);line-height:1.6}
.ficha{gap:6px 16px}
.acoes-cabecalho,.acoes-status{gap:10px}
.bloco{margin-bottom:40px}
.bloco>h2,.painel-dash h2{font-size:18px}

/* ---------- botões (pílula) */
.botao{height:42px;min-height:42px;padding:0 20px;border-radius:999px;font-size:14px;font-weight:500;white-space:nowrap;border:1px solid var(--input);background:var(--ivory);color:var(--ink);box-shadow:none;transition:background .2s,border-color .2s,color .2s}
.botao:hover{background:var(--ivory);border-color:var(--gold);color:var(--gold-d)}
a.botao{color:var(--ink)}
.botao-principal,a.botao-principal{background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.botao-principal:hover{background:var(--navy2);border-color:var(--navy2);color:var(--ivory)}
.botao-azul{background:var(--gold);border-color:var(--gold);color:var(--ivory)}
.botao-azul:hover{background:var(--gold-d);border-color:var(--gold-d);color:var(--ivory)}
.botao-pequeno{height:36px;min-height:36px;padding:0 16px;font-size:13px}
.botao-quieto{color:var(--mut)}
.botao-perigo{color:var(--bad);border-color:var(--badbd)}
.botao-perigo:hover{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.botao:disabled{opacity:.4}
.link{color:var(--gold-d);text-decoration:none}
.link:hover{color:#5E4716;text-decoration:underline}
.btn{border-radius:999px;height:42px;padding:0 20px;font-size:14px;border-color:var(--input);background:var(--ivory);box-shadow:none}
.btn:hover{background:var(--ivory);border-color:var(--gold);color:var(--gold-d)}
.btn.pri{background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.btn.pri:hover{background:var(--navy2);color:var(--ivory)}
.btn.sm{height:36px;font-size:13px}.btn.xs{height:30px;font-size:12px}

/* ---------- campos */
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="number"],input[type="search"],input[type="date"],input:not([type]),select,textarea{
  min-height:44px;height:auto;border:1px solid var(--input);border-radius:12px;background-color:var(--ivory);padding:9px 14px;font-size:14px;color:var(--ink);box-shadow:none;outline:none;transition:border-color .2s,box-shadow .2s}
select{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236E6A60' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;appearance:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 4px rgba(149,115,39,.12)}
input:disabled,select:disabled{background-color:var(--bg);color:var(--mut)}
input[aria-busy="true"]{background:var(--bg2) linear-gradient(90deg,transparent,rgba(149,115,39,.12),transparent) 0 0/200% 100%}
.com-erro input,.com-erro select,.com-erro textarea{border-color:var(--bad)}
.campo{gap:7px}
.campo label,.rotulo-grupo{font-size:13px;font-weight:500;color:var(--ink)}
.obrig{color:var(--gold)}
.ajuda{font-size:12px;color:var(--mut)}
.erro-campo{font-size:12px;color:var(--bad)}
.texto-apoio{color:var(--mut);font-size:14px;line-height:1.6}
.marca input,input[type="checkbox"],input[type="radio"]{accent-color:var(--navy)}
.marca small{color:var(--mut);font-size:12px}
.grupo{border-radius:18px;border:1px solid var(--line);background:var(--card);box-shadow:none;padding:24px 28px 28px;margin-bottom:20px}
.grupo legend{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-d);padding:0 8px;margin-left:-8px}
.grade{gap:16px 18px}
.alternador{border-color:var(--input);border-radius:999px;padding:3px;gap:2px;background:var(--bg)}
.alternador span{border:0 !important;border-radius:999px;padding:7px 18px;color:var(--mut);transition:background .2s,color .2s}
.alternador input:checked+span{background:var(--navy);color:var(--ivory)}
.alternador-grande{border-radius:18px}
.alternador-grande span{border-radius:14px}
.alternador-grande input:checked+span small{color:#C4CBD4}
.sub-titulo{color:var(--gold-d);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.sub-bloco{border-top:1px solid var(--line2)}
.dica-lc116{background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:12px}

/* ---------- filtros */
.filtros{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 20px;gap:14px;margin-bottom:20px}
.filtros .campo label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);font-weight:400}

/* ---------- indicadores */
.kpis{margin-bottom:28px;gap:20px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px 26px;box-shadow:none;min-width:0}
.kpi>div{min-width:0}
a.kpi{color:inherit;text-decoration:none;transition:border-color .25s}
a.kpi:hover{border-color:var(--gold-l)}
.kpi .l{font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.18em;color:var(--mut)}
.kpi .v{margin:14px 0 0;font-size:28px;font-weight:500;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;line-height:1.1}
.kpi .s{margin:10px 0 0;font-size:13px;color:var(--mut)}
.kpi-ic{display:none !important}
.faixa-status{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.contador{padding:20px 26px;border-left:1px solid var(--line2);gap:6px}
a.contador{text-decoration:none}
a.contador:hover{background:var(--bg2)}
.contador-num{font-size:28px;font-weight:500;letter-spacing:-.02em}
.contador-rotulo{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.contador-alerta .contador-num{color:var(--warn)}
.cartao-dash,.emitir-cartao,.cartao-empresa{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:none}
.emitir-cartao{border-left:1px solid var(--line);padding:22px 24px}
.emitir-cartao:hover,.cartao-empresa:hover{border-color:var(--gold-l)}
.emitir-sigla{font-size:24px;font-weight:500;color:var(--ink)}
.cartao-icone{background:var(--bg);color:var(--gold-d);border-radius:14px;font-weight:500}
.cartao-qtd{color:var(--ink);font-weight:500}
.validade{border:1.5px solid var(--gold);color:var(--ink)}
.validade-dias{font-weight:500}
.certificado-alerta .validade{border-color:var(--warn);color:var(--warn)}
.grafico-barra{fill:var(--navy)}
.grafico-eixo{fill:var(--mut)}
.grafico-grade{stroke:var(--line2)}

/* ---------- tabelas */
.tabela{border:1px solid var(--line);border-radius:18px;background:var(--card);border-collapse:separate;border-spacing:0;overflow:hidden;font-size:14px}
.tabela th{height:46px;padding:0 12px;font-size:10.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);background:var(--card);border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.tabela td{padding:16px 12px;color:var(--ink);border-top:0;border-bottom:1px solid var(--line2);vertical-align:middle}
.tabela th:first-child,.tabela td:first-child{padding-left:22px}
.tabela th:last-child,.tabela td:last-child{padding-right:22px}
.tabela tbody tr:last-child td{border-bottom:0}
.tabela tbody tr:hover td,.linha-clicavel:hover td{background:var(--bg2)}
.tabela tfoot td{border-top:1px solid var(--line);border-bottom:0}
.tabela-compacta,.painel-dash .tabela{border:0;border-radius:0}
.tabela-compacta th,.tabela-compacta td{padding:10px 8px}
.tabela-compacta td{font-size:13.5px}
.tabela-compacta th:first-child,.tabela-compacta td:first-child{padding-left:0}
.tabela-compacta th:last-child,.tabela-compacta td:last-child{padding-right:0}
.tabela-retencoes th[scope="row"]{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13.5px}
.tabela-itens th{font-size:10px;padding:8px 6px}
.tabela-itens td input,.tabela-itens td select{height:36px;min-height:36px;padding:0 8px;border-radius:10px;border-color:var(--input);font-size:13.5px}
.tabela-itens td input.item-desc{height:30px;min-height:30px;font-size:12px}
.tabela.tabela-itens th:first-child,.tabela.tabela-itens td:first-child{padding-left:14px}
.tabela.tabela-itens th:last-child,.tabela.tabela-itens td:last-child{padding-right:14px}
.tabela.tabela-itens td{padding:8px 6px}
.nome-empresa,td a.nome-empresa{color:var(--ink);font-weight:500;text-decoration:none}
.nome-empresa:hover{color:var(--gold-d);text-decoration:none}
.tabela td a:not(.botao){color:var(--ink);text-decoration:none}
.tabela td a:not(.botao):hover{color:var(--gold-d)}
.secundario{color:var(--mut);font-size:12.5px}
.vazio{border-radius:18px;border:1px dashed var(--input);background:var(--card);color:var(--mut);padding:36px 20px;text-align:center}
.vazio-celula{color:var(--mut)}
.linha-tempo,.lista-acessos,.lista-relatorios,.certificado-cartao,.painel-dash,.nota-totais{border-radius:18px;border:1px solid var(--line);background:var(--card);box-shadow:none}
.linha-tempo li,.lista-acessos li,.lista-relatorios li{border-top-color:var(--line2);padding:14px 22px}
.linha-tempo time{color:var(--mut)}
.painel-dash{padding:26px 28px}
.nota-totais .total{color:var(--ink);font-weight:600}
.menu-acoes-lista{border-radius:14px;border-color:var(--line);box-shadow:0 18px 40px -12px rgba(29,43,59,.25);padding:6px}
.menu-acoes-lista a,.menu-acoes-lista button{border-radius:9px;padding:9px 12px;font-size:14px;color:var(--ink)}
.menu-acoes-lista a:hover,.menu-acoes-lista button:hover{background:var(--bg);color:var(--gold-d)}
.menu-acoes-lista .link-perigo{color:var(--bad)}
.paginacao{color:var(--mut);font-size:13px}

/* ---------- abas (pílula) */
.abas,.abas-form{display:inline-flex;gap:4px;background:#EFECE4;border-radius:999px;padding:4px;border-bottom:0;margin-bottom:24px;flex-wrap:wrap}
.abas a,.abas-form button{padding:8px 18px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--mut);border:0;margin:0;white-space:nowrap;text-decoration:none;transition:background .25s,color .25s,box-shadow .25s}
.abas a:hover,.abas-form button:hover{color:var(--ink)}
.abas a[aria-current="page"],.abas-form button[aria-selected="true"]{background:var(--ivory);color:var(--ink);box-shadow:0 1px 2px rgba(29,43,59,.08)}

/* ---------- selos e avisos */
.selo,.ambiente,.mod{border-radius:999px;padding:4px 12px;font-size:12px;font-weight:500;border:0;white-space:nowrap}
.selo-ativa,.ambiente-1,.selo-nota-autorizada{background:var(--okbg);color:var(--ok)}
.selo-bloqueada,.selo-nota-rejeitada,.selo-nota-denegada{background:var(--badbg);color:var(--bad)}
.selo-inativa,.selo-nota-rascunho,.mod{background:var(--infobg);color:var(--ink)}
.selo-retido,.ambiente-2{background:var(--warnbg);color:var(--warn)}
.selo-nota-processando{background:#F6F1E6;color:var(--gold-d)}
.selo-nota-cancelada{background:var(--infobg);color:var(--mut)}
.mod{padding:2px 10px;font-weight:400}
.mod-nenhum{background:transparent;padding:0}
.cert-ok::before{background:var(--ok)}
.cert-alerta{color:var(--warn)}.cert-alerta::before{background:var(--gold-l)}
.cert-vencido,.cert-falta{color:var(--bad)}.cert-vencido::before,.cert-falta::before{background:var(--bad)}
.aviso{border-radius:12px;padding:12px 16px;font-size:13.5px;line-height:1.5}
.aviso-ok{background:var(--okbg);border-color:var(--okbd);color:#24543E}
.aviso-alerta{background:var(--warnbg);border-color:var(--warnbd);color:#6B4610}
.aviso-erro{background:var(--badbg);border-color:var(--badbd);color:#7A2222}
.aviso-info{background:var(--infobg);border-color:var(--infobd);color:var(--ink)}
.aviso a{color:inherit;text-decoration:underline}
.toast{background:var(--navy);color:var(--ivory);border-radius:14px;padding:14px 18px;font-size:14px;box-shadow:0 16px 40px -12px rgba(29,43,59,.4)}
.modal-bg{background:rgba(29,43,59,.42)}
.modal{background:var(--ivory);border-radius:20px;padding:28px 30px;box-shadow:0 30px 60px -20px rgba(29,43,59,.35)}
.modal h2{font-size:20px}
.busca-opcoes{border-color:var(--line);border-radius:14px;box-shadow:0 18px 40px -12px rgba(29,43,59,.25)}
.busca-opcoes li b,.lista-cnaes li b{color:var(--ink)}
.busca-opcoes li span{color:var(--ink)}
.busca-opcoes li small{color:var(--mut)}
.busca-opcoes li:hover,.busca-opcoes li.ativo{background:var(--bg)}
.busca-cclass,.busca-opcoes li.busca-todos{color:var(--gold-d)}
.lista-cnaes li{background:var(--bg2);border-color:var(--line);border-radius:10px}
.itens-copia{border-color:var(--line);border-radius:12px}

/* ---------- login (metade marinho, metade marfim) */
.tela-acesso{background:var(--ivory)}
.login-bg{position:fixed;inset:0;z-index:80;display:flex;flex-wrap:wrap;background:var(--ivory);overflow:auto;padding:0;align-items:stretch;justify-content:flex-start}
.login-hero{flex:1 1 520px;background:var(--navy);color:var(--ivory);padding:64px 72px;display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:100vh}
.login-topo{display:flex;align-items:center;gap:14px}
.login-topo img{width:56px;height:auto}
.login-kicker{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-l);white-space:nowrap}
.login-mid{display:flex;flex-direction:column;gap:20px;max-width:460px}
.login-mid h1{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:60px;font-weight:500;line-height:1.02;color:var(--ivory);letter-spacing:0}
.login-rule{width:48px;height:1px;background:var(--gold)}
.login-mid p{margin:0;font-size:16px;line-height:1.7;color:#C4CBD4}
.login-site{font-size:12px;color:#8D97A4}
.login-side{flex:1 1 480px;display:flex;align-items:center;justify-content:center;padding:64px 32px}
.login-card{width:100%;max-width:380px;background:transparent;border-radius:0;padding:0;box-shadow:none}
.login-head{margin-bottom:24px}
.login-head h2{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:36px;font-weight:500;letter-spacing:0}
.login-head p{margin:8px 0 0;font-size:14px;color:var(--mut)}
.login-card .campo{margin-bottom:16px}
.login-card .botao{width:100%;height:50px;min-height:50px;font-size:15px;letter-spacing:.02em;margin:8px 0 14px}
.login-card .ajuda{text-align:center;font-size:12.5px}
.login-card .erro-pagina h1{font-size:28px}

@media (max-width:1100px){.content>main{padding:40px 32px 56px}}
@media (max-width:860px){
  .side{position:static;width:auto}.content{margin-left:0}.content>main{padding:24px 16px}
  .login-hero{min-height:auto;padding:40px 28px}.login-mid h1{font-size:44px}
}
@media print{.side{display:none !important}.content{margin:0}.tabela,.grupo,.kpi{border-color:#ddd}body{background:#fff}}
.marca input{margin-top:3px}
.formulario.form-nota{max-width:1140px}

/* ---------- telas de emissão (NF-e e NFS-e) no estilo em blocos */
.formulario.form-nota,.form-nota.nf{max-width:none}
.nf{display:flex;flex-direction:column;gap:20px}
.nf-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px 28px;min-width:0}
.nf-card>h2,.nf-dobra-h h2{margin:0 0 18px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.nf-topo{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:20px;align-items:stretch}
.nf-topo-dir{display:flex;flex-direction:column;gap:20px;min-width:0}
.nf-numero{display:flex;flex-direction:column;gap:22px}
.nf-kv{display:flex;flex-direction:column;gap:5px;min-width:0}
.nf-kv .l,.nf-valor .l,.nf-acoes-total .l{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.nf-kv .v{font-size:16px;font-weight:500;color:var(--ink);line-height:1.35}
.nf-kv small{font-size:12.5px;color:var(--mut)}
.nf-emitente{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:20px;padding-top:20px;padding-bottom:20px}
.nf-emitente .v{font-size:14.5px}
.nf-texto{margin:0;min-height:44px;display:flex;align-items:center;color:var(--ink)}
input[readonly]{background-color:var(--bg);border-color:var(--line);color:var(--ink);cursor:default}
input[readonly]:focus{border-color:var(--line);box-shadow:none}

/* chave liga/desliga */
.chave{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.chave input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.chave-trilho{position:relative;width:42px;height:24px;border-radius:999px;background:#DCD8CE;transition:background .25s;flex-shrink:0}
.chave-trilho::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ivory);box-shadow:0 1px 3px rgba(29,43,59,.25);transition:transform .3s var(--ease)}
.chave input:checked+.chave-trilho{background:var(--navy)}
.chave input:checked+.chave-trilho::after{transform:translateX(18px)}
.chave input:focus-visible+.chave-trilho{outline:2px solid var(--gold);outline-offset:2px}
.chave-campo{min-height:44px}
.chave-txt{font-size:13.5px;color:var(--ink);white-space:nowrap}

/* produtos: barra de inclusão + tabela */
.nf-entrada{display:grid;grid-template-columns:minmax(220px,2.4fr) repeat(3,minmax(104px,1fr)) minmax(76px,.6fr) auto;gap:14px;align-items:end}
.nf-entrada .campo{min-width:0}
.nf-e-acao .botao{height:44px;min-height:44px}
.nf-mais{margin:12px 0 4px}
.nf-mais-b{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px;border:0;border-radius:10px;background:var(--bg2);color:var(--mut);font:inherit;font-size:12.5px;cursor:pointer;transition:color .2s,background .2s}
.nf-mais-b:hover{color:var(--gold-d);background:var(--bg)}
.nf-mais-b svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.nf-mais.open .nf-mais-b svg{transform:rotate(180deg)}
.nf-mais-c{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--ease)}
.nf-mais.open .nf-mais-c{grid-template-rows:1fr}
.nf-mais-in{overflow:hidden;min-height:0}
.nf-mais.open .nf-mais-in{padding-top:14px}
.nf .tabela-rolagem{margin:16px 0 0}
.nf .tabela-itens{min-width:760px;border-radius:14px}
.nf .tabela-itens th{background:var(--bg2)}
.nf .tabela-itens .col-n{width:44px;color:var(--mut);font-variant-numeric:tabular-nums}
.nf .tabela-itens th:nth-child(3){width:84px}.nf .tabela-itens th:nth-child(4){width:104px}
.nf .tabela-itens th:nth-child(5){width:122px}.nf .tabela-itens th:nth-child(6){width:104px}
.nf .tabela-itens th:nth-child(7){width:112px}.nf .tabela-itens th:nth-child(8){width:56px}
.nf .tabela-itens td input{border-color:transparent;background-color:transparent}
.nf .tabela-itens td input:hover{border-color:var(--line)}
.nf .tabela-itens td input:focus{border-color:var(--gold);background-color:var(--ivory)}
.nf .tabela-itens td input.item-prod{font-weight:500}
.nf .tabela-itens .item-total{font-weight:500;color:var(--ink);padding-right:14px}
.nf .tabela-itens .item-remover{width:32px;padding:0;color:var(--mut)}
.nf .tabela-itens .item-remover:hover{color:var(--bad);border-color:var(--badbd)}
.nf-vazio{margin:16px 0 0;padding:22px;border:1px dashed var(--input);border-radius:14px;text-align:center;color:var(--mut);font-size:13.5px}

/* caixas de valores (impostos e totais) */
.nf-valores{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.nf-totais{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.nf-valor{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:var(--bg2);border:1px solid var(--line2);min-width:0}
.nf-valor .v{font-size:17px;font-weight:500;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.nf-valor .v small,.nf-acoes-total .v small{font-size:12px;font-weight:400;color:var(--mut)}
.nf-valor .v b{font-weight:500}
.nf-valor-total{background:var(--navy);border-color:var(--navy)}
.nf-valor-total .l{color:var(--gold-l)}
.nf-valor-total .v{color:var(--ivory);font-size:19px}
.nf-valor-total .v small{color:#AEB7C2}
.nf-nota-ibs{margin-top:12px}
.nf .erro-campo[data-erro-calculo]{margin-top:12px}

/* blocos que abrem pela chave */
.nf-dobras{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.nf-dobra{padding-top:18px;padding-bottom:18px}
.nf-dobra.open{grid-column:1/-1}
.nf-dobra-h{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nf-dobra-h h2{margin:0;cursor:pointer;flex:1}
.nf-dobra-c{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--ease)}
.nf-dobra.open .nf-dobra-c{grid-template-rows:1fr}
.nf-dobra-in{overflow:hidden;min-height:0;opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .4s var(--ease)}
.nf-dobra.open .nf-dobra-in{opacity:1;transform:none;padding-top:20px;overflow:visible}
.nf-dobra[hidden]{display:none}
.nf-ajuda-topo{margin:0 0 14px}
.nf-retencoes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.nf-retencoes .marca{margin-top:6px}

/* barra de ações */
.nf-acoes{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;
  margin:4px -12px 0;padding:16px 12px;background:rgba(247,246,242,.92);backdrop-filter:blur(6px);border-top:1px solid var(--line)}
.nf-acoes-total{margin-right:auto;display:flex;flex-direction:column;gap:2px}
.nf-acoes-total .v{font-size:20px;font-weight:500;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.nf-acoes .link{margin-right:6px}

@media (max-width:1100px){
  .nf-topo{grid-template-columns:1fr}
  .nf-entrada{grid-template-columns:1fr 1fr 1fr}
  .nf-entrada .nf-e-prod{grid-column:1/-1}
  .nf-retencoes{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .nf-dobras{grid-template-columns:1fr}
  .nf-emitente{grid-template-columns:1fr}
  .nf-card{padding:20px}
}
@media (prefers-reduced-motion:reduce){.nf-dobra-c,.nf-dobra-in,.nf-mais-c,.chave-trilho::after{transition:none}}
.nf .tabela-itens th:nth-child(2){width:auto}
@media (min-width:1200px){.nf .campo>label,.nf .campo>.rotulo-grupo{white-space:nowrap}}


/* ===== Ajustes de 03/11/2026 ===================================================== */
.sem-quebra{white-space:nowrap}
.linha-historico td{padding-top:4px;padding-bottom:6px;border-top:0;background:var(--bg2,#faf9f6)}
.selo-agenda-ativo{background:#E6F2EA;color:#2F6B45}
.selo-agenda-pausado,.selo-agenda-concluido,.selo-agenda-cancelado{background:#EEF0F3;color:#5B6675}
.selo-agenda-suspenso{background:#FBEAEA;color:#9B2C2C}
.link-menu{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;font:inherit;color:inherit;cursor:pointer;border-radius:8px}
.link-menu:hover{background:var(--bg,#f4f2ed)}
.acoes-form{display:flex;align-items:center;gap:16px;margin-top:8px}

/* cartões com cantos retos e sombra leve */
.nf-card,.grupo,.filtros,.kpi,.faixa-status,.cartao-dash,.emitir-cartao,.cartao-empresa,.tabela,.vazio,
.linha-tempo,.lista-acessos,.lista-relatorios,.certificado-cartao,.painel-dash,.nota-totais,.card,.box,
.mini,.tbl-wrap,.nf-valor,.nf-vazio,.dica-lc116,.itens-copia{
  border-radius:0 !important;box-shadow:0 1px 3px rgba(29,43,59,.08),0 4px 14px -6px rgba(29,43,59,.10) !important}
.nf .tabela-itens{border-radius:0}

/* menu lateral recolhido: só os ícones; abre ao passar o mouse (com atraso e transição suave) */
@media (min-width:861px){
  .side{--suave:cubic-bezier(.25,.8,.25,1);width:76px;padding:28px 14px 18px;overflow:hidden;z-index:60;
    transition:width .55s var(--suave) .35s,padding .55s var(--suave) .35s,box-shadow .55s var(--suave) .35s}
  .side:hover,.side:focus-within{width:264px;padding:28px 16px 18px;overflow-y:auto;box-shadow:16px 0 40px -16px rgba(0,0,0,.45);
    transition-delay:.15s}
  .content{margin-left:76px}
  .side .brand{padding-left:2px;padding-right:0;white-space:nowrap}
  .side .brand-txt,.side nav>a>span:not(.bar),.side nav .grp>span,.side nav .grp .chev,
  .side .empresa-atual>*,.side .sair-empresa,.side .u-box{opacity:0;transition:opacity .25s ease}
  .side:hover .brand-txt,.side:hover nav>a>span:not(.bar),.side:hover nav .grp>span,.side:hover nav .grp .chev,
  .side:hover .empresa-atual>*,.side:hover .sair-empresa,.side:hover .u-box,
  .side:focus-within .brand-txt,.side:focus-within nav>a>span:not(.bar),.side:focus-within nav .grp>span,
  .side:focus-within nav .grp .chev,.side:focus-within .empresa-atual>*,.side:focus-within .sair-empresa,
  .side:focus-within .u-box{opacity:1;transition:opacity .45s ease .4s}
  .side .empresa-atual{transition:background .45s ease,border-color .45s ease}
  .side:not(:hover):not(:focus-within) .empresa-atual{background:transparent;border-color:transparent}
  .side:not(:hover):not(:focus-within) .open>.submenu{grid-template-rows:0fr}
  .side:not(:hover):not(:focus-within) nav .open>.submenu a{opacity:0}
  .side nav>a,.side nav .grp{white-space:nowrap;padding-left:15px}
  .side .empresa-atual,.side .sair-empresa{white-space:nowrap;min-width:232px}
  .side-foot{white-space:nowrap}
}
/* submenus abrem e fecham mais devagar */
.side .submenu{transition:grid-template-rows .65s cubic-bezier(.25,.8,.25,1)}
.side nav .submenu a{transition:opacity .5s ease,transform .6s cubic-bezier(.25,.8,.25,1),color .25s,background .25s}
.side nav .grp .chev{transition:transform .5s cubic-bezier(.25,.8,.25,1),opacity .3s}
.side nav>a,.side nav .grp{transition:background .35s,color .35s}
@media (prefers-reduced-motion:reduce){.side,.side *{transition:none !important}}
.tabela{overflow:visible !important}
input[type="month"]{font:inherit;width:100%;min-height:44px;height:auto;border:1px solid var(--input);border-radius:12px;background-color:var(--ivory);padding:9px 14px;font-size:14px;color:var(--ink);box-shadow:none;outline:none}
.formulas{margin:6px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--mut)}
.chip-formula{border:1px dashed var(--input);background:var(--bg2,#faf9f6);color:var(--gold-d,#7a5c1e);font:600 11.5px ui-monospace,Consolas,monospace;padding:3px 8px;cursor:pointer}
.chip-formula:hover{border-style:solid;border-color:var(--gold,#957327)}
.formulas .ajuda{margin:0}

/* nome da empresa no menu: abreviado no servidor e quebrando em até 2 linhas, sem sumir */
.empresa-atual strong{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;max-width:100%}
.empresa-atual{min-width:0;overflow:hidden}
