/* Central de Firewalls — estilo base.
   As cores da marca (--pri…) vêm da tela "Identidade visual" e são injetadas no <head>. */
:root{
  --bg:#edf1f4;--card:#fff;--card2:#f6f8fa;--txt:#15212b;--sub:#566472;--borda:#d8dfe6;--borda2:#c3ccd5;
  --ok:#17744a;--okbg:#e2f3ea;--err:#b42318;--errbg:#fcebe9;--warn:#8a5300;--warnbg:#fff1d4;
  --lat:#0f2129;--lat-txt:#c6d4db;--lat-sub:#7d95a1;--lat-hover:rgba(255,255,255,.06);--lat-ativo:rgba(255,255,255,.1);--lat-borda:rgba(255,255,255,.07);
  --sombra:0 1px 2px rgba(16,33,41,.06),0 4px 14px rgba(16,33,41,.05);
  --sombra-alta:0 18px 50px rgba(8,20,26,.28);
  --raio:10px;--raio-p:7px;
  --fonte:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"Cascadia Mono","Cascadia Code",Consolas,"SFMono-Regular",ui-monospace,monospace;
  --lateral:244px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-tema=claro]){
  --bg:#0c1216;--card:#131b21;--card2:#18222a;--txt:#e3e9ee;--sub:#93a3b0;--borda:#24313b;--borda2:#33424e;
  --ok:#5fd193;--okbg:#12301f;--err:#ff8a80;--errbg:#3a1714;--warn:#f0c060;--warnbg:#33290f;
  --lat:#090e12;--lat-borda:rgba(255,255,255,.05);
  --sombra:0 1px 2px rgba(0,0,0,.4);--sombra-alta:0 18px 50px rgba(0,0,0,.6);
  --pri:var(--pri-e);--pri2:var(--pri2-e);--pri-suave:var(--pri-suave-e);--pri-texto:var(--pri-texto-e);
  color-scheme:dark;
}}
:root[data-tema=escuro]{
  --bg:#0c1216;--card:#131b21;--card2:#18222a;--txt:#e3e9ee;--sub:#93a3b0;--borda:#24313b;--borda2:#33424e;
  --ok:#5fd193;--okbg:#12301f;--err:#ff8a80;--errbg:#3a1714;--warn:#f0c060;--warnbg:#33290f;
  --lat:#090e12;--lat-borda:rgba(255,255,255,.05);
  --sombra:0 1px 2px rgba(0,0,0,.4);--sombra-alta:0 18px 50px rgba(0,0,0,.6);
  --pri:var(--pri-e);--pri2:var(--pri2-e);--pri-suave:var(--pri-suave-e);--pri-texto:var(--pri-texto-e);
  color-scheme:dark;
}
/* Menu lateral claro (opção da identidade visual) */
body.menu-claro{--lat:var(--card);--lat-txt:var(--txt);--lat-sub:var(--sub);--lat-hover:var(--card2);--lat-ativo:var(--pri-suave);--lat-borda:var(--borda)}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14.5px/1.5 var(--fonte);background:var(--bg);color:var(--txt);min-height:100vh}
a{color:var(--pri)}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
.ic{width:18px;height:18px;flex:none}

/* ---------------- estrutura: menu lateral + área de trabalho */
.app{display:grid;grid-template-columns:var(--lateral) 1fr;min-height:100vh}
.lateral{background:var(--lat);color:var(--lat-txt);border-right:1px solid var(--lat-borda);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden;z-index:40}
.lateral .topo{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;text-decoration:none;color:inherit}
.lateral .logo{width:34px;height:34px;flex:none;object-fit:contain;border-radius:6px}
.lateral .topo b{display:block;font-size:14.5px;line-height:1.2;color:var(--lat-txt);font-weight:650}
body:not(.menu-claro) .lateral .topo b{color:#fff}
.lateral .topo small{display:block;color:var(--lat-sub);font-size:11.5px;line-height:1.3}
.lateral nav{flex:1;overflow-y:auto;padding:6px 10px 12px;display:flex;flex-direction:column;gap:1px}
.lateral nav .secao{font-size:11.5px;color:var(--lat-sub);padding:14px 10px 4px;font-weight:600}
.lateral nav a{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:var(--raio-p);color:var(--lat-txt);text-decoration:none;font-size:14px}
.lateral nav a .ic{opacity:.8}
.lateral nav a:hover{background:var(--lat-hover)}
.lateral nav a.ativo{background:var(--lat-ativo);box-shadow:inset 3px 0 0 var(--pri-e, var(--pri))}
body:not(.menu-claro) .lateral nav a.ativo{color:#fff}
body.menu-claro .lateral nav a.ativo{box-shadow:inset 3px 0 0 var(--pri);color:var(--pri)}
.lateral nav a.sub{padding-left:39px;font-size:13.5px}
.lateral .pe{border-top:1px solid var(--lat-borda);padding:10px;display:flex;align-items:center;gap:6px}
.lateral .pe a.quem{flex:1;display:flex;align-items:center;gap:9px;color:var(--lat-txt);text-decoration:none;padding:6px 8px;border-radius:var(--raio-p);min-width:0}
.lateral .pe a.quem:hover,.lateral .pe button:hover{background:var(--lat-hover)}
.lateral .pe a.quem span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}
.lateral .pe button,.lateral .pe a.icone{background:transparent;color:var(--lat-sub);border:0;padding:7px;border-radius:var(--raio-p);display:inline-flex;cursor:pointer}
.lateral .pe button:hover,.lateral .pe a.icone:hover{color:var(--lat-txt);background:var(--lat-hover)}

.trabalho{min-width:0;display:flex;flex-direction:column}
.barra{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--borda);display:flex;align-items:center;gap:12px;padding:10px 28px}
.barra .abrir-menu{display:none;background:transparent;color:var(--txt);border:1px solid var(--borda);padding:7px;border-radius:var(--raio-p)}
.ir-para{flex:1;max-width:560px;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);padding:8px 12px;color:var(--sub);cursor:pointer;font:inherit;text-align:left;font-weight:400}
.ir-para:hover{border-color:var(--pri);background:var(--card);color:var(--sub)}
.ir-para span{flex:1}
kbd{font:600 11px var(--mono);border:1px solid var(--borda2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;color:var(--sub);background:var(--card2)}
main{width:100%;max-width:1280px;margin:0 auto;padding:26px 28px 60px}
.rodape{color:var(--sub);font-size:12px;text-align:center;padding:0 28px 22px}

@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .lateral{position:fixed;inset:0 auto 0 0;width:min(84vw,300px);transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--sombra-alta)}
  body.menu-aberto .lateral{transform:none}
  body.menu-aberto::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35}
  .barra{padding:10px 16px}.barra .abrir-menu{display:inline-flex}
  main{padding:20px 16px 50px}
  .ir-para kbd{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------------- tipografia e blocos */
h1{font-size:23px;line-height:1.25;margin:0 0 4px;font-weight:650;letter-spacing:-.01em}
h2{font-weight:650}
p.sub{color:var(--sub);margin:0 0 20px}
.card{background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);padding:20px;margin-bottom:16px;box-shadow:var(--sombra)}
.card h2{font-size:15.5px;margin:0 0 12px}
h3{font-size:14.5px;margin:18px 0 6px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}
.cabecalho{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:6px}
.cabecalho .botoes{margin-top:0}
.estreito{max-width:420px;margin:60px auto}
.mono{font-family:var(--mono);font-size:12.5px;word-break:break-all}
.vazio{display:none;font-size:13px;color:var(--sub);padding:8px 0}
.dica{font-size:12px;color:var(--sub);font-weight:400;margin-top:3px}
.passo{border-left:3px solid var(--pri);padding:2px 0 2px 12px;margin:10px 0}
.resumo{font-size:13px;color:var(--sub);margin-top:6px}.resumo b{color:var(--txt)}
.tabela-rolagem{overflow:auto}
form.inline{display:inline}

/* ---------------- formulários */
label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--borda2);border-radius:var(--raio-p);background:var(--card);color:var(--txt);font:inherit}
textarea{min-height:80px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--pri);outline-offset:-1px;border-color:transparent}
input[type=color]{padding:2px;height:38px;cursor:pointer}
input[type=file]{padding:7px;background:var(--card2)}
.check{display:flex;gap:8px;align-items:center;font-weight:400}.check input{width:auto}
.botoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
button,.btn{background:var(--pri);color:var(--pri-texto);border:1px solid var(--pri);border-radius:var(--raio-p);padding:8px 15px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;line-height:1.35}
button:hover,.btn:hover{background:var(--pri2);border-color:var(--pri2)}
button.sec,.btn.sec{background:var(--card);color:var(--pri);border-color:var(--borda2)}
button.sec:hover,.btn.sec:hover{border-color:var(--pri);background:var(--pri-suave)}
button.fantasma,.btn.fantasma{background:transparent;color:var(--sub);border-color:transparent}
button.fantasma:hover,.btn.fantasma:hover{background:var(--card2);color:var(--txt);border-color:transparent}
button.perigo,.btn.perigo{background:transparent;color:var(--err);border-color:var(--err);padding:5px 10px;font-weight:500}
button.perigo:hover{background:var(--errbg)}
button.mini,.btn.mini{padding:3px 9px;font-size:12.5px;font-weight:500}
button:disabled{opacity:.6;cursor:wait}
.btn .ic,button .ic{width:16px;height:16px}

/* ---------------- mensagens e etiquetas */
.msg{padding:10px 14px;border-radius:var(--raio-p);margin-bottom:12px;border:1px solid transparent}
.msg.ok{background:var(--okbg);color:var(--ok)}.msg.erro{background:var(--errbg);color:var(--err)}.msg.aviso{background:var(--warnbg);color:var(--warn)}
.msg.info{background:var(--pri-suave);color:var(--txt);border-color:color-mix(in srgb,var(--pri) 25%,transparent)}
.tag{display:inline-block;padding:1px 8px;border-radius:99px;font-size:11.5px;font-weight:600;line-height:1.6;vertical-align:1px}
.tag.aberta{background:var(--okbg);color:var(--ok)}.tag.fechada,.tag.erro{background:var(--errbg);color:var(--err)}.tag.sem,.tag.info{background:var(--warnbg);color:var(--warn)}
.tag.padrao{background:var(--card2);color:var(--sub);border:1px solid var(--borda)}
.tag.cred{background:var(--okbg);color:var(--ok);font-weight:500}
.tag.inativo{background:var(--errbg);color:var(--err)}
.tag.admin{background:var(--pri);color:var(--pri-texto)}
.tag.marca{background:var(--pri-suave);color:var(--pri)}

/* ---------------- tabelas */
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--borda)}
th{font-size:12px;color:var(--sub);font-weight:600;background:var(--card2);position:sticky;top:0;z-index:1}
tr.item:hover td,table.realce tr:hover td{background:color-mix(in srgb,var(--pri) 4%,transparent)}
table.compacta td{font-size:13px;vertical-align:top}table small{color:var(--sub)}
.acoes{white-space:nowrap;text-align:right}
td.sel,th.sel{width:28px}td.sel input{width:auto}
pre{background:var(--card2);border:1px solid var(--borda);border-radius:var(--raio-p);padding:12px;overflow:auto;max-height:480px;font:12px/1.5 var(--mono);white-space:pre-wrap}
details summary{cursor:pointer;color:var(--sub);font-size:13px}
mark,.marcado{background:color-mix(in srgb,#f5c400 45%,transparent);color:inherit;border-radius:2px;padding:0 1px}
::highlight(busca){background-color:#f5c40080;color:inherit}

/* ---------------- peças que já existiam */
.atalhos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.atalhos a{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);padding:14px 16px;color:var(--txt);text-decoration:none}
.atalhos a .ic{color:var(--pri);margin-top:2px;width:20px;height:20px}
.atalhos a:hover{border-color:var(--pri)}.atalhos b{display:block;margin-bottom:2px;font-size:14px}.atalhos span{color:var(--sub);font-size:12.5px;display:block}
.lista-grupos{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-top:6px}
.grupo{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--borda);border-radius:var(--raio-p);padding:10px;font-weight:400;cursor:pointer;margin:0}
.grupo:hover{border-color:var(--pri)}.grupo input{width:auto;margin-top:4px}.grupo small{color:var(--sub)}
.grupo:has(input:checked:not(:disabled)){border-color:var(--pri);background:var(--pri-suave)}.grupo.auto{opacity:.7;cursor:default}
.abas{display:flex;gap:2px;border-bottom:1px solid var(--borda);margin:0 0 20px;overflow-x:auto}
.abas a,.abas button{padding:8px 14px;color:var(--sub);text-decoration:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600;background:transparent;border-radius:0;white-space:nowrap}
.abas a.ativo,.abas button.ativo{color:var(--pri);border-bottom-color:var(--pri)}.abas a:hover,.abas button:hover{color:var(--txt);background:transparent}
.abas button .n{font-weight:500;color:var(--sub);font-size:12px;margin-left:4px}
.filtro-linha{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:4px 0 8px}
.filtro-linha input[type=search]{flex:1 1 240px;width:auto}.filtro-linha .check{margin:0;font-size:13px;white-space:nowrap}
.rolagem{max-height:340px;overflow:auto;padding:2px}
.lista-fw{display:grid;gap:6px}
.fw-item{border:1px solid var(--borda);border-radius:var(--raio-p);padding:8px 10px}
.fw-item:has(input[name=firewalls]:checked){border-color:var(--pri);background:var(--pri-suave)}
.fw-item>.check{cursor:pointer;margin:0}.fw-item small{color:var(--sub);font-weight:400}
.fw-item details{margin-top:4px}.fw-item details .grid{margin-top:8px}
.barra-acao{border-top:1px solid var(--borda);padding:12px 0;margin-top:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pub td{vertical-align:top}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);padding:13px 16px}
.kpi b{display:block;font-size:24px;line-height:1.2;font-weight:650}.kpi span{color:var(--sub);font-size:12.5px}
.perm-lista{display:grid;gap:6px}.perm-lista .check{border:1px solid var(--borda);border-radius:var(--raio-p);padding:8px 10px}
.paginas{display:flex;gap:6px;align-items:center;margin-top:12px;flex-wrap:wrap}
.paginas a,.paginas span{padding:4px 10px;border:1px solid var(--borda);border-radius:var(--raio-p);text-decoration:none;color:var(--txt);font-size:13px}
.paginas .atual{background:var(--pri);color:var(--pri-texto);border-color:var(--pri)}
.qr{background:#fff;display:inline-block;padding:8px;border-radius:8px}.qr svg{display:block;width:200px;height:200px}

/* ---------------- acesso rápido (Ctrl+K) */
dialog.rapido{border:0;padding:0;background:transparent;width:min(680px,calc(100vw - 24px));max-height:none;margin:10vh auto auto}
dialog.rapido::backdrop{background:rgba(8,16,20,.45);backdrop-filter:blur(2px)}
.rapido .caixa{background:var(--card);border:1px solid var(--borda);border-radius:14px;box-shadow:var(--sombra-alta);overflow:hidden}
.rapido .entrada{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--borda);color:var(--sub)}
.rapido .entrada input{border:0;outline:0;background:transparent;font-size:16px;padding:6px 0}
.rapido .entrada input:focus{outline:0}
.rapido ul{list-style:none;margin:0;padding:6px;max-height:min(60vh,520px);overflow:auto}
.rapido li.titulo{font-size:12px;color:var(--sub);padding:10px 10px 4px;font-weight:600}
.rapido li.op{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--raio-p);cursor:pointer}
.rapido li.op.sel{background:var(--pri-suave)}
.rapido li.op .ic{color:var(--sub)}
.rapido li.op .txt{flex:1;min-width:0}
.rapido li.op .txt b{display:block;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rapido li.op .txt small{display:block;color:var(--sub);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rapido li.op .acoes-r{display:flex;gap:4px;opacity:.55}
.rapido li.op.sel .acoes-r,.rapido li.op:hover .acoes-r{opacity:1}
.rapido .ajuda{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--borda);font-size:12px;color:var(--sub);flex-wrap:wrap}
.rapido .nada{padding:22px;text-align:center;color:var(--sub)}

/* ---------------- lista de firewalls (atalhos do time) */
.fw-linha{display:grid;grid-template-columns:28px minmax(180px,1.4fr) minmax(130px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--borda)}
.fw-linha:last-child{border-bottom:0}
.fw-linha:hover{background:color-mix(in srgb,var(--pri) 3%,transparent)}
.fw-linha .nome b{display:block}.fw-linha .nome small{color:var(--sub);font-size:12.5px}
.fw-linha .endereco{font-family:var(--mono);font-size:12.5px;display:flex;align-items:center;gap:6px}
.fw-linha .acoes{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fw-cabeca{background:var(--card2);color:var(--sub);font-size:12px;font-weight:600;padding:8px 12px}
.estrela{background:transparent;border:0;color:var(--borda2);padding:3px;cursor:pointer;border-radius:6px}
.estrela:hover{background:var(--card2);color:var(--warn)}
.estrela.on{color:#d99a00}.estrela.on svg{fill:currentColor}
.fabricante{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.fabricante i{width:8px;height:8px;border-radius:2px;display:inline-block;background:var(--sub)}
.fabricante.sonicwall i{background:#e2702d}.fabricante.fortinet i{background:#d6352c}.fabricante.sangfor i{background:#2f6fd6}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--borda2);background:var(--card);color:var(--sub);border-radius:99px;padding:3px 11px;font-size:12.5px;font-weight:500;cursor:pointer}
.chip:hover{border-color:var(--pri);background:var(--card)}
.chip.on{background:var(--pri);border-color:var(--pri);color:var(--pri-texto)}
@media (max-width:760px){.fw-linha{grid-template-columns:28px 1fr;}.fw-linha .fabricante,.fw-linha .endereco{grid-column:2}.fw-linha .acoes{grid-column:1/-1;justify-content:flex-start}.fw-cabeca{display:none}}

/* ---------------- pesquisa nos resultados */
.busca-resultados{position:sticky;top:61px;z-index:20;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--pri);border-radius:var(--raio);padding:10px 12px;margin-bottom:14px;box-shadow:var(--sombra)}
.busca-resultados input[type=search]{flex:1 1 260px;width:auto;font-size:15px}
.busca-resultados .contagem{font-size:13px;color:var(--sub);white-space:nowrap}
.busca-resultados .contagem b{color:var(--txt)}
.fw-resultado{border:1px solid var(--borda);border-radius:var(--raio);background:var(--card);margin-bottom:12px;box-shadow:var(--sombra)}
.fw-resultado>summary{list-style:none;display:flex;gap:10px;align-items:center;padding:12px 16px;color:var(--txt);font-size:14px;cursor:pointer}
.fw-resultado>summary::-webkit-details-marker{display:none}
.fw-resultado>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);transform:rotate(-45deg);transition:transform .15s;margin-right:4px}
.fw-resultado[open]>summary::before{transform:rotate(45deg)}
.fw-resultado>summary b{flex:1}
.fw-resultado>.corpo{padding:0 16px 14px}
.fw-resultado>.corpo>.card{border:0;box-shadow:none;padding:0;margin:0}
.fw-resultado.sem-resultado{opacity:.55}
.n-achados{font-size:12px;font-weight:600;border-radius:99px;padding:1px 9px;background:var(--card2);color:var(--sub)}
.n-achados.tem{background:var(--pri-suave);color:var(--pri)}

/* ---------------- tela de login */
.entrada-tela{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,520px)}
.entrada-tela .lado{background:var(--lat);color:var(--lat-txt);padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.entrada-tela .lado .logo{width:54px;height:54px;object-fit:contain;border-radius:8px}
.entrada-tela .lado h1{color:#fff;font-size:30px;margin:22px 0 6px;max-width:16ch}
.entrada-tela .lado p{max-width:42ch;color:var(--lat-sub);margin:0}
.entrada-tela .lado .muro{position:absolute;right:-40px;bottom:-30px;width:360px;opacity:.07;color:#fff}
.entrada-tela .form{display:flex;align-items:center;justify-content:center;padding:40px 28px;background:var(--card)}
.entrada-tela .form>div{width:100%;max-width:340px}
.entrada-tela .form h2{font-size:21px;margin:0 0 4px}
body.menu-claro .entrada-tela .lado h1{color:var(--txt)}
@media (max-width:820px){.entrada-tela{grid-template-columns:1fr}.entrada-tela .lado{padding:28px;min-height:auto}.entrada-tela .lado .muro{display:none}.entrada-tela .lado h1{font-size:23px}}

/* ---------------- analisador de backup */
.matriz{border-collapse:separate;border-spacing:3px;width:auto}
.matriz th{background:transparent;position:static;font-size:12px;white-space:nowrap;padding:4px 6px}
.matriz th.linha{text-align:right}
.matriz td{width:52px;height:38px;text-align:center;border:0;border-radius:6px;font-weight:600;font-size:13px;padding:0;cursor:pointer;color:var(--txt)}
.matriz td.zero{background:var(--card2);color:var(--borda2);cursor:default;font-weight:400}
.matriz td:not(.zero):hover{outline:2px solid var(--pri)}
.barras{display:grid;gap:6px}
.barras .b{display:grid;grid-template-columns:150px 1fr 48px;gap:10px;align-items:center;font-size:13px}
.barras .b .trilho{height:10px;background:var(--card2);border-radius:99px;overflow:hidden}
.barras .b .trilho i{display:block;height:100%;background:var(--pri);border-radius:99px}
.barras .b span:last-child{text-align:right;color:var(--sub);font-variant-numeric:tabular-nums}
.alertas-cfg{display:grid;gap:8px}
.alertas-cfg .a{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--borda);border-left:3px solid var(--warn);border-radius:var(--raio-p);padding:10px 12px;font-size:13.5px}
.alertas-cfg .a.ok{border-left-color:var(--ok)}.alertas-cfg .a.erro{border-left-color:var(--err)}
.alertas-cfg .a b{display:block}
.link-obj{color:var(--pri);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.painel-obj{position:fixed;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));max-height:60vh;overflow:auto;background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra-alta);padding:16px;z-index:60}
.solta{border:2px dashed var(--borda2);border-radius:var(--raio);padding:26px;text-align:center;color:var(--sub);background:var(--card2)}
.solta.sobre{border-color:var(--pri);background:var(--pri-suave)}
.solta b{color:var(--txt)}
[hidden]{display:none!important}
.fw-linha a{text-decoration:none}.fw-linha a:hover{text-decoration:underline}
.fw-linha .acoes{flex-wrap:nowrap}
@media (max-width:1180px){.fw-linha .acoes{flex-wrap:wrap}}
.matriz th,.matriz td{border:0}
button.funcao{align-items:flex-start;text-align:left}

/* ================================================================ análise visual de configuração (v6.1) */
:root{--z-wan:#d4473e;--z-lan:#1d9a5f;--z-dmz:#c98400;--z-vpn:#7356e8;--z-wifi:#0b98b2;--z-outro:#6f7d8a}
@media (prefers-color-scheme:dark){:root:not([data-tema=claro]){--z-wan:#ff7b72;--z-lan:#4cc38a;--z-dmz:#f0b429;--z-vpn:#a48afb;--z-wifi:#3cc7e0;--z-outro:#93a3b0}}
:root[data-tema=escuro]{--z-wan:#ff7b72;--z-lan:#4cc38a;--z-dmz:#f0b429;--z-vpn:#a48afb;--z-wifi:#3cc7e0;--z-outro:#93a3b0}
.wan{--z:var(--z-wan)}.lan{--z:var(--z-lan)}.dmz{--z:var(--z-dmz)}.vpn{--z:var(--z-vpn)}.wifi{--z:var(--z-wifi)}.outro,.qualquer{--z:var(--z-outro)}

.info-eq{display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 18px;color:var(--sub);font-size:13.5px}
.info-eq b{color:var(--txt);font-weight:600}
.fabricante.sophos i{background:#1f6fd0}
.analise{container-type:inline-size;min-width:0}
.analise .busca-resultados{top:61px}
.secao-bk[hidden]{display:none}
.filtro-ativo{display:inline-flex;gap:6px;align-items:center;background:var(--pri-suave);color:var(--pri);border-radius:99px;padding:2px 4px 2px 11px;font-size:12.5px;font-weight:600}
.filtro-ativo button{padding:0 6px;background:transparent;border:0;color:inherit}
.tag.sem-uso{background:var(--warnbg);color:var(--warn)}
.painel-obj h3{margin:0 0 4px}
.painel-obj ul{margin:8px 0 0;padding-left:18px;font-size:13px}
.painel-obj.esq{right:auto;left:calc(var(--lateral) + 16px)}
@media (max-width:900px){.painel-obj.esq{left:16px}}
.painel-obj .no-outro{border:1px dashed var(--borda2);border-radius:var(--raio-p);padding:6px 9px;margin:0 0 10px;font-size:13px}
.painel-obj .no-outro small{display:block;color:var(--sub);font-size:11.5px}
.painel-obj .no-outro .falta{color:var(--warn);font-weight:600}

/* números do topo */
.numeros{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.numeros button{background:var(--card);color:var(--txt);border:1px solid var(--borda);border-radius:var(--raio);padding:12px 14px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;font-weight:400;box-shadow:var(--sombra)}
.numeros button:hover{background:var(--card);border-color:var(--pri)}
.numeros i{grid-row:1/3;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--pri-suave);color:var(--pri)}
.numeros i .ic{width:18px;height:18px}
.numeros .k-nat i{background:color-mix(in srgb,var(--z-wan) 14%,var(--card));color:var(--z-wan)}
.numeros .k-obj i,.numeros .k-srv i{background:color-mix(in srgb,var(--z-lan) 14%,var(--card));color:var(--z-lan)}
.numeros .k-vpn i{background:color-mix(in srgb,var(--z-vpn) 14%,var(--card));color:var(--z-vpn)}
.numeros .k-if i{background:color-mix(in srgb,var(--z-dmz) 16%,var(--card));color:var(--z-dmz)}
.numeros b{display:block;font-size:21px;font-weight:650;line-height:1.15;font-variant-numeric:tabular-nums}
.numeros span{font-size:12px;color:var(--sub);line-height:1.3}

/* pílula de zona e "chip" de objeto */
.zp{display:inline-flex;align-items:center;gap:5px;padding:1px 8px 1px 6px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.6;
  background:color-mix(in srgb,var(--z) 13%,var(--card));color:color-mix(in srgb,var(--z) 78%,var(--txt));border:1px solid color-mix(in srgb,var(--z) 28%,transparent)}
.zp::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--z)}
.zp.qualquer{background:var(--card2);color:var(--sub);border-color:var(--borda)}
.zp.qualquer::before{display:none}
.zonas{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.seta{color:var(--sub);font-size:12px;padding:0 2px}
td.seta{text-align:center;width:24px}
.chs{display:flex;flex-wrap:wrap;gap:4px}
.ch{display:inline-flex;flex-direction:column;align-items:flex-start;padding:2px 8px;border-radius:7px;font-size:12.5px;line-height:1.35;border:1px solid var(--borda);background:var(--card2);color:var(--txt);text-decoration:none;white-space:nowrap}
.ch.link-obj{color:var(--txt);text-decoration:none;cursor:pointer}
.ch.link-obj:hover{border-color:var(--pri);background:var(--pri-suave)}
.ch small{font:11px/1.3 var(--mono);color:var(--sub)}
.painel-obj .ch,.vpn-card .ch{white-space:normal;word-break:break-word}
.ch.any{color:var(--sub);background:transparent;border-style:dashed}
.ch.orig{color:var(--sub);background:transparent;border-color:transparent;padding-left:2px;font-style:italic}
.ch.forte{border-color:color-mix(in srgb,var(--pri) 45%,var(--borda));background:var(--pri-suave)}
.acao{display:inline-block;font-size:12px;font-weight:650;padding:2px 9px;border-radius:99px;white-space:nowrap}
.acao.ok{background:var(--okbg);color:var(--ok)}.acao.err{background:var(--errbg);color:var(--err)}
table.visual td{vertical-align:middle}
table.visual td.n{color:var(--sub);font-size:12px;font-variant-numeric:tabular-nums}
table.visual tr.desligada td{background:repeating-linear-gradient(-45deg,transparent 0 7px,color-mix(in srgb,var(--sub) 6%,transparent) 7px 14px)}
table.visual tr.desligada td>*{opacity:.65}
.nome-obj{font-weight:600}
.trad{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.tipo-nat{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--sub);white-space:nowrap}
.tipo-nat .ic{width:14px;height:14px}
.tipo-nat.entrada{color:var(--z-wan)}.tipo-nat.saida{color:var(--z-lan)}
.tobj{display:inline-block;padding:1px 8px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--card2);color:var(--sub);border:1px solid var(--borda)}
.tobj b{font-weight:700;color:var(--txt);margin-left:3px}
.tobj.host{background:color-mix(in srgb,var(--z-lan) 12%,var(--card));color:var(--z-lan);border-color:transparent}
.tobj.rede{background:color-mix(in srgb,var(--z-wifi) 13%,var(--card));color:var(--z-wifi);border-color:transparent}
.tobj.faixa{background:color-mix(in srgb,var(--z-dmz) 14%,var(--card));color:var(--z-dmz);border-color:transparent}
.tobj.fqdn,.tobj.geo{background:color-mix(in srgb,var(--z-vpn) 13%,var(--card));color:var(--z-vpn);border-color:transparent}
.tobj.grupo{background:var(--pri-suave);color:var(--pri);border-color:transparent}
.tobj.vip{background:color-mix(in srgb,var(--z-wan) 12%,var(--card));color:var(--z-wan);border-color:transparent}
.tipos-obj{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.proto{display:inline-block;font:600 11px var(--mono);padding:1px 6px;border-radius:5px;margin-right:3px;background:var(--card2);color:var(--sub)}
.proto.tcp{background:color-mix(in srgb,var(--z-wifi) 14%,var(--card));color:var(--z-wifi)}
.proto.udp{background:color-mix(in srgb,var(--z-vpn) 14%,var(--card));color:var(--z-vpn)}
.uso{display:inline-block;width:46px;height:6px;border-radius:99px;background:var(--card2);overflow:hidden;margin-right:7px;vertical-align:middle}
.uso i{display:block;height:100%;background:var(--pri);border-radius:99px}

/* mapa da rede */
.legenda-z{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--sub)}
.legenda-z span{display:inline-flex;align-items:center;gap:5px}
.legenda-z i{width:9px;height:9px;border-radius:3px;background:var(--z)}
.mapa-rede{position:relative;display:grid;gap:34px;padding:6px 0 4px}
.mr-fios{position:absolute;inset:0;pointer-events:none;overflow:visible}
.mr-fios .fio{fill:none;stroke:var(--z);stroke-width:2;opacity:.55}
.mr-fios .fio.tunel{stroke-dasharray:5 5;opacity:.8}
.mr-linha{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.mr-nuvem{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:99px;background:color-mix(in srgb,var(--z-wan) 10%,var(--card));border:1px solid color-mix(in srgb,var(--z-wan) 35%,transparent);color:var(--z-wan);font-size:13.5px}
.mr-nuvem b{color:var(--txt)}
.mr-vpn{display:flex;flex-direction:column;gap:1px;padding:7px 12px;border-radius:var(--raio-p);border:1px dashed var(--z-vpn);background:color-mix(in srgb,var(--z-vpn) 7%,var(--card));font-size:12.5px;max-width:230px}
.mr-vpn b{display:flex;align-items:center;gap:6px;color:var(--z-vpn)}.mr-vpn b .ic{width:15px;height:15px}
.mr-vpn small{color:var(--sub)}
.mr-vpn.inativa{opacity:.55}
.mr-fw{display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:12px;background:var(--lat);color:#fff;box-shadow:var(--sombra-alta);min-width:240px;max-width:100%}
body.menu-claro .mr-fw{background:var(--txt);color:var(--card)}
.mr-fw-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--pri);color:var(--pri-texto)}
.mr-fw-ic .ic{width:22px;height:22px}
.mr-fw b{display:block;font-size:15px}.mr-fw small{display:block;opacity:.72;font-size:12px}
.mr-no{display:flex;flex-direction:column;gap:3px;min-width:160px;max-width:240px;padding:0 0 7px;border-radius:var(--raio-p);border:1px solid color-mix(in srgb,var(--z) 40%,var(--borda));
  background:var(--card);color:var(--txt);font-weight:400;text-align:left;overflow:hidden;box-shadow:var(--sombra)}
.mr-no:hover{background:var(--card);border-color:var(--z);box-shadow:0 0 0 2px color-mix(in srgb,var(--z) 30%,transparent)}
.mr-no-topo{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 10px;background:color-mix(in srgb,var(--z) 14%,var(--card));border-bottom:1px solid color-mix(in srgb,var(--z) 25%,transparent);margin-bottom:2px}
.mr-no-topo b{color:color-mix(in srgb,var(--z) 75%,var(--txt));font-size:13.5px}
.mr-no-topo small{color:var(--sub);font-size:11.5px;white-space:nowrap}
.mr-if{display:flex;justify-content:space-between;gap:10px;padding:0 10px;font-size:12px}
.mr-if .mono{font-size:11.5px;color:var(--sub);word-break:normal}
.mr-if small{color:var(--sub)}

/* visão geral: pontos de atenção + rosca */
.visao{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
@container (max-width:820px){.visao{grid-template-columns:1fr}}
.alertas-cfg .a .a-ic{flex:none;width:20px;height:20px;border-radius:99px;display:grid;place-items:center;font-size:11px;font-weight:800;background:var(--warnbg);color:var(--warn)}
.alertas-cfg .a.erro .a-ic{background:var(--errbg);color:var(--err)}.alertas-cfg .a.ok .a-ic{background:var(--okbg);color:var(--ok)}
.alertas-cfg .a.erro{background:color-mix(in srgb,var(--errbg) 45%,var(--card))}
.saude{display:flex;gap:6px}
.rosca-box{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.rosca{width:150px;height:150px;flex:none}
.rosca circle{fill:none;stroke-width:5.2}
.rosca .trilho{stroke:var(--card2)}
.rosca .fatia.ok{stroke:var(--ok)}.rosca .fatia.err{stroke:var(--err)}.rosca .fatia.sub{stroke:var(--borda2)}
.rosca-n{font-size:9px;font-weight:700;text-anchor:middle;fill:var(--txt)}
.rosca-t{font-size:3.6px;text-anchor:middle;fill:var(--sub)}
.rosca-leg{display:grid;gap:2px;flex:1;min-width:150px}
.rosca-leg button{justify-content:flex-start;gap:8px;padding:5px 8px;font-weight:500;color:var(--txt)}
.rosca-leg button b{margin-left:auto;font-variant-numeric:tabular-nums}
.rosca-leg i,.leg-fluxo i{width:10px;height:10px;border-radius:3px;display:inline-block}
i.ok{background:var(--ok)}i.err{background:var(--err)}i.sub{background:var(--borda2)}
.leg-fluxo{display:inline-flex;align-items:center;gap:5px;margin:0 6px;white-space:nowrap}
.leg-fluxo i{margin-left:6px}

/* fluxo entre zonas */
.seletor{display:inline-flex;border:1px solid var(--borda2);border-radius:var(--raio-p);overflow:hidden}
.seletor button{background:var(--card);color:var(--sub);border:0;border-radius:0;padding:4px 12px;font-size:12.5px;font-weight:600}
.seletor button.on{background:var(--pri);color:var(--pri-texto)}
.seletor button:not(.on):hover{background:var(--card2);color:var(--txt)}
.sankey{width:100%;overflow:hidden}
.sk .faixa{cursor:pointer;opacity:.42;transition:opacity .12s}
.sk .faixa:hover{opacity:.85}
.sk .faixa.ok{fill:var(--ok)}.sk .faixa.err{fill:var(--err)}.sk .faixa.sub{fill:var(--sub);opacity:.22}
.sk .no{fill:var(--z)}
.sk .rot{font-size:12.5px;font-weight:600;fill:var(--txt)}
.sk .rot .qt{font-weight:400;fill:var(--sub)}

/* publicado na internet */
.publicados{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.pub-card{display:grid;grid-template-columns:1fr auto 1fr;gap:6px 10px;align-items:center;border:1px solid var(--borda);border-left:3px solid var(--z-wan);border-radius:var(--raio-p);padding:10px 12px;background:var(--card)}
.pub-card.risco{border-color:color-mix(in srgb,var(--err) 50%,var(--borda));border-left-color:var(--err);background:color-mix(in srgb,var(--errbg) 35%,var(--card))}
.pub-card.inativa{opacity:.55}
.pub-lado{display:flex;flex-direction:column;gap:2px;min-width:0}
.pub-lado small{display:flex;align-items:center;gap:4px;color:var(--sub);font-size:11.5px;flex-wrap:wrap}
.pub-lado small .ic{width:13px;height:13px}
.pub-lado b.mono{font-size:13px;font-weight:700;word-break:break-all}
.pub-lado .porta{font:600 12px var(--mono);color:var(--pri)}
.pub-seta{color:var(--sub);font-size:18px}
.pub-pe{grid-column:1/-1;font-size:12px;color:var(--sub);border-top:1px dashed var(--borda);padding-top:6px}

/* interfaces por zona */
.zonas-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.zona-card{border:1px solid var(--borda);border-top:3px solid var(--z);border-radius:var(--raio);background:var(--card);box-shadow:var(--sombra);overflow:hidden}
.zc-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:color-mix(in srgb,var(--z) 7%,var(--card))}
.zc-topo small{color:var(--sub);font-size:12px}
.zc-if{padding:8px 12px;border-top:1px solid var(--borda);font-size:13px}
.zc-if small{color:var(--sub)}
.zc-if .mono{margin-top:2px}.zc-if .gw{color:var(--sub);margin-left:6px}

/* VPN */
.vpns{display:grid;gap:10px}
.vpn-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,1.2fr) minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--borda);border-radius:var(--raio-p);padding:10px 12px}
.vpn-card.inativa{opacity:.55}
.vpn-pt small{display:block;color:var(--sub);font-size:11.5px;margin-bottom:2px}
.vpn-tunel{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.vpn-tunel span{display:inline-flex;align-items:center;gap:5px;color:var(--z-vpn);font-size:13px}
.vpn-tunel span .ic{width:15px;height:15px}
.vpn-tunel i{display:block;width:100%;height:0;border-top:2px dashed var(--z-vpn)}
.vpn-tunel small{color:var(--sub)}
.vpn-pt:last-child{text-align:right}.vpn-pt:last-child .ch{margin-left:auto}

@container (max-width:640px){
  .numeros{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mr-no{min-width:140px}
  .vpn-card{grid-template-columns:1fr}.vpn-pt:last-child{text-align:left}.vpn-pt:last-child .ch{margin-left:0}
}

/* botão "comparar" com lista de outros backups */
.menu-comparar{position:relative}
.menu-comparar>summary{list-style:none;color:var(--pri)}
.menu-comparar>summary::-webkit-details-marker{display:none}
.menu-comparar-lista{position:absolute;right:0;top:calc(100% + 6px);z-index:50;width:min(380px,90vw);max-height:360px;overflow:auto;background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra-alta);padding:8px}
.menu-comparar-lista>small{display:block;color:var(--sub);padding:2px 8px 6px}
.menu-comparar-lista a{display:block;padding:7px 9px;border-radius:var(--raio-p);text-decoration:none;color:var(--txt);font-size:13.5px}
.menu-comparar-lista a small{display:block;color:var(--sub);font-size:12px}
.menu-comparar-lista a:hover{background:var(--pri-suave)}
.menu-comparar-lista a.outro{color:var(--pri);border-top:1px solid var(--borda);border-radius:0;margin-top:4px}

/* comparação de duas configurações */
.letra,.letra-mini{display:inline-grid;place-items:center;border-radius:7px;font-weight:800;color:#fff;flex:none}
.letra{width:30px;height:30px;font-size:15px}
.letra-mini{width:18px;height:18px;font-size:11px;border-radius:5px;vertical-align:-3px}
.a>.letra,.letra-mini.a,.lado-id.a .letra{background:#2f6fd6}
.b>.letra,.letra-mini.b,.lado-id.b .letra{background:#8a4fd8}
.escolha-linha{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:end}
.escolha-linha .trocar{padding:8px 12px;font-size:16px}
@media (max-width:760px){.escolha-linha{grid-template-columns:1fr}.escolha-linha .trocar{justify-self:start}}
.opcoes-cmp{margin-top:12px}
.opcoes-cmp .check{align-items:flex-start;flex-wrap:wrap}.opcoes-cmp .check .dica{flex-basis:100%;margin-left:24px}
.resumo-cmp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:center}
@media (max-width:1100px){.resumo-cmp{grid-template-columns:1fr}}
.ids-cmp{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ids-cmp .vs{color:var(--sub);font-size:20px}
.lado-id{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1 1 240px}
.lado-id b a{color:var(--txt);text-decoration:none}.lado-id b a:hover{text-decoration:underline}
.lado-id small{display:block;color:var(--sub);font-size:12.5px}
.placar{display:flex;gap:16px;align-items:center}
.medidor{--p:0;width:86px;height:86px;flex:none;border-radius:50%;display:grid;place-items:center;align-content:center;
  background:radial-gradient(closest-side,var(--card) 76%,transparent 77%),conic-gradient(var(--ok) calc(var(--p)*1%),color-mix(in srgb,var(--warn) 40%,var(--card2)) 0)}
.medidor b{font-size:20px;line-height:1}.medidor small{font-size:11px;color:var(--sub)}
.placar-txt{font-size:14px;min-width:0}
.chip-sec{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--borda);border-radius:99px;padding:2px 10px;font-size:12.5px;color:var(--ok);text-decoration:none;background:var(--card)}
.chip-sec.mudou{color:var(--txt);border-color:color-mix(in srgb,var(--warn) 45%,var(--borda))}
.chip-sec b{background:var(--warnbg);color:var(--warn);border-radius:99px;padding:0 7px;font-size:11.5px}
.chip-sec:hover{border-color:var(--pri)}
.barra-modo{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;margin:0 0 14px}
.barra-modo .seletor button{padding:7px 14px;font-size:13.5px;display:inline-flex;gap:7px;align-items:center}
.barra-modo .seletor .ic{width:16px;height:16px}
.n-dif{background:var(--warnbg);color:var(--warn);border-radius:99px;padding:0 7px;font-size:11.5px}
.seletor button.on .n-dif{background:rgba(255,255,255,.25);color:inherit}
.barra-modo .sinc{margin:0;font-size:13.5px}
.lado-a-lado{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1000px){.lado-a-lado{grid-template-columns:1fr}}
.coluna{min-width:0}
.coluna-topo{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--raio) var(--raio) 0 0;margin-bottom:-1px;border:1px solid var(--borda);border-bottom:0;background:var(--card)}
.coluna-topo.a{box-shadow:inset 0 3px 0 #2f6fd6}.coluna-topo.b{box-shadow:inset 0 3px 0 #8a4fd8}
.coluna-topo b{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coluna-topo small{color:var(--sub);margin-left:auto}
.coluna .busca-resultados{border-radius:0 0 var(--raio) var(--raio)}
.coluna .analise .abas{margin-bottom:14px}
body.sem-menu .app{grid-template-columns:0 1fr}
body.sem-menu .lateral{visibility:hidden}
body.sem-menu .painel-obj.esq{left:16px}
/* lista de diferenças */
.num-cmp{display:grid;gap:4px;max-width:760px}
.nc-cab,.nc-linha{display:grid;grid-template-columns:150px 1fr 44px 1fr 44px;gap:10px;align-items:center;font-size:13px}
.nc-cab span{font-size:12px;font-weight:700}.nc-cab .a{color:#2f6fd6}.nc-cab .b{color:#8a4fd8}
.nc-linha{padding:3px 6px;border-radius:6px}
.nc-linha.muda{background:color-mix(in srgb,var(--warnbg) 60%,transparent)}
.nc-linha b{font-variant-numeric:tabular-nums;text-align:right}
.nc-barra{height:9px;border-radius:99px;background:var(--card2);overflow:hidden}
.nc-barra i{display:block;height:100%;border-radius:99px}
.nc-barra.a i{background:#2f6fd6}.nc-barra.b i{background:#8a4fd8}.nc-barra.alerta i{background:var(--warn)}
.filtro-dif{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:12px 16px;position:sticky;top:61px;z-index:15}
.filtro-dif .check{margin:0;font-size:13px}
.tag.est-a{background:color-mix(in srgb,#2f6fd6 14%,var(--card));color:#2f6fd6}
.tag.est-b{background:color-mix(in srgb,#8a4fd8 14%,var(--card));color:#8a4fd8}
.est-tag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}
.est-tag.diferente{background:var(--warnbg);color:var(--warn)}
.est-tag.so_a{background:color-mix(in srgb,#2f6fd6 14%,var(--card));color:#2f6fd6}
.est-tag.so_b{background:color-mix(in srgb,#8a4fd8 14%,var(--card));color:#8a4fd8}
.est-tag.igual{background:var(--okbg);color:var(--ok)}
.tabela-dif td{vertical-align:top}
.tabela-dif tr.diferente td{background:color-mix(in srgb,var(--warnbg) 35%,transparent)}
.tabela-dif .falta{color:var(--sub);font-style:italic;font-size:13px}
.tabela-dif small.mono{font-size:11.5px;color:var(--sub)}
.notas{margin:0;padding-left:16px;font-size:12.5px}
.notas li{margin:1px 0}
@media (prefers-color-scheme:dark){:root:not([data-tema=claro]) .tag.est-a,:root:not([data-tema=claro]) .est-tag.so_a{color:#7fb0ff}:root:not([data-tema=claro]) .tag.est-b,:root:not([data-tema=claro]) .est-tag.so_b{color:#c3a1ff}}
:root[data-tema=escuro] .tag.est-a,:root[data-tema=escuro] .est-tag.so_a{color:#7fb0ff}
:root[data-tema=escuro] .tag.est-b,:root[data-tema=escuro] .est-tag.so_b{color:#c3a1ff}
.sk.foco .faixa{opacity:.06}.sk.foco .faixa.on{opacity:.8}
