/* ===========================================================================
   Painel Oda — folha de estilo única.
   Sem framework: a página inteira tem meia dúzia de componentes, e uma
   dependência de CDN seria a primeira coisa a quebrar num servidor que existe
   justamente para ficar rodando sozinho.
   ========================================================================= */

:root {
  --fundo:        #f4f6f8;
  --papel:        #ffffff;
  --borda:        #dfe4ea;
  --texto:        #1c2430;
  --tenue:        #6b7684;
  --marca:        #0b4f6c;
  --marca-clara:  #e7f1f6;
  --novo:         #0a7d4a;
  --novo-fundo:   #eaf7f0;
  --alerta:       #b23b3b;
  --alerta-fundo: #fdeeee;
  --aviso-fundo:  #fff8e6;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font: 15px/1.5 -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

h1     { font-size: 22px; margin: 0 0 4px; }
h2     { font-size: 17px; margin: 0 0 12px; }
h3     { font-size: 15px; margin: 18px 0 8px; }
a      { color: var(--marca); }
code   { background: #eef1f4; padding: 1px 5px; border-radius: 3px; font-size: 13px; }
pre    { background: #f7f9fa; border: 1px solid var(--borda); border-radius: 6px;
         padding: 10px; overflow-x: auto; font-size: 13px; }

/* --- trilho lateral ------------------------------------------------------
   Estrutura: .quadro é a linha (trilho | área), cada um com a própria rolagem.
   A largura do trilho vem de uma variável, e o estado recolhido é uma classe
   no <body> gravada em COOKIE — o PHP lê antes de desenhar, então a página
   nasce na largura certa em vez de encolher depois que o script roda.
   ------------------------------------------------------------------------- */
:root { --largura-trilho: 244px; }
body.trilho-recolhido { --largura-trilho: 62px; }

.quadro { display: flex; min-height: 100vh; align-items: stretch; }

.trilho {
  flex: 0 0 var(--largura-trilho);
  width: var(--largura-trilho);
  min-width: 0;
  background: var(--papel);
  border-right: 1px solid var(--borda);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
  transition: flex-basis .22s ease, width .22s ease;
  overflow: hidden;
}
.trilho-topo { display: flex; align-items: center; gap: 8px; height: 54px;
               padding: 0 10px; border-bottom: 1px solid var(--borda); flex-shrink: 0; }
.trilho .marca { color: var(--marca); font-weight: 700; font-size: 15px;
                 text-decoration: none; letter-spacing: .2px; white-space: nowrap; }
.botao-recolher { background: none; border: 0; color: var(--tenue); padding: 6px;
                  border-radius: 7px; cursor: pointer; line-height: 0; flex-shrink: 0; }
.botao-recolher:hover { background: #eef1f4; color: var(--texto); }

.trilho-itens { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 9px;
                display: flex; flex-direction: column; gap: 2px; }
.trilho-divisor { height: 1px; background: var(--borda); margin: 7px 4px; flex-shrink: 0; }

.trilho-item {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px 9px; border-radius: 9px; border: 0; background: none;
  color: var(--tenue); text-decoration: none; font: inherit; font-size: 14px;
  cursor: pointer; text-align: left; white-space: nowrap;
}
.trilho-item:hover  { background: #eef1f4; color: var(--texto); }
.trilho-item.ativo  { background: var(--marca); color: #fff; }
.trilho-item.ativo:hover { background: var(--marca); filter: brightness(1.08); }
.trilho-item.grupo.dentro { color: var(--marca); font-weight: 600; }
.trilho-item .rotulo { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.trilho-item svg { flex-shrink: 0; }
.trilho-item .seta { line-height: 0; transition: transform .2s; }
.trilho-item[aria-expanded="true"] .seta { transform: rotate(90deg); }

.selo { background: #e8b53f; color: #3a2c05; border-radius: 9px; padding: 1px 7px;
        font-size: 11.5px; font-weight: 700; flex-shrink: 0; }
.trilho-item.ativo .selo { background: rgba(255,255,255,.24); color: #fff; }

.submenu { display: flex; flex-direction: column; gap: 1px;
           margin: 1px 0 1px 18px; padding-left: 11px; border-left: 1px solid var(--borda); }
.sub-item { display: flex; align-items: center; gap: 8px; padding: 6px 9px;
            border-radius: 7px; color: var(--tenue); text-decoration: none;
            font-size: 13px; white-space: nowrap; }
.sub-item:hover { background: #eef1f4; color: var(--texto); }
.sub-item.ativo { background: var(--marca-clara); color: var(--marca); font-weight: 600; }
.sub-item .ponto { width: 4px; height: 4px; border-radius: 50%; background: #b9c2cb; flex-shrink: 0; }
.sub-item.ativo .ponto { background: var(--marca); }
.sub-item .rotulo { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.sub-selo { font-size: 11.5px; color: var(--tenue); }
.sub-item.ativo .sub-selo { color: var(--marca); font-weight: 700; }

.trilho-rodape { border-top: 1px solid var(--borda); padding: 10px;
                 display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.ponto-estado { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ponto-estado.ok     { background: var(--novo); }
.ponto-estado.alerta { background: #e8b53f; }
.ponto-estado.cinza  { background: #c3cbd3; }
.trilho-rodape-texto { min-width: 0; font-size: 12.5px; color: var(--tenue); white-space: nowrap; }
.campo-mini { font-size: 10px; text-transform: uppercase; letter-spacing: .7px; color: #97a1aa; }

/* Recolhido: some tudo que é texto, sobra o ícone centralizado. */
body.trilho-recolhido .trilho .marca,
body.trilho-recolhido .trilho-item .rotulo,
body.trilho-recolhido .trilho-item .seta,
body.trilho-recolhido .trilho-item .selo,
body.trilho-recolhido .submenu,
body.trilho-recolhido .trilho-rodape-texto { display: none; }
body.trilho-recolhido .trilho-item  { justify-content: center; padding: 9px 0; }
body.trilho-recolhido .trilho-topo  { justify-content: center; padding: 0; }
body.trilho-recolhido .trilho-rodape{ justify-content: center; }

/* --- área de conteúdo ---------------------------------------------------- */
.area { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topo-pagina { display: flex; align-items: center; gap: 12px; min-height: 54px;
               padding: 8px 20px; background: var(--papel);
               border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 20; }
.topo-pagina h1 { font-size: 16px; margin: 0; font-weight: 600; }
.topo-pagina .usuario { font-size: 13px; color: var(--tenue); }
.topo-pagina .sair { font-size: 13px; }
.selo-topo { background: var(--novo-fundo); color: #0a5c37; border: 1px solid #bfe3ce;
             border-radius: 999px; padding: 2px 10px; font-size: 12.5px;
             text-decoration: none; font-weight: 600; white-space: nowrap; }
.so-celular { display: none; }
.capa-trilho { display: none; }

/* Dentro da área o main não centraliza mais sozinho: quem dá a margem é a
   área, e o conteúdo ocupa a largura útil que sobrou do trilho. */
main { max-width: 1240px; margin: 20px auto 36px; padding: 0 20px; width: 100%; }
.rodape { max-width: 1240px; margin: 0 auto 26px; padding: 12px 20px; width: 100%; }

@media (max-width: 860px) {
  .trilho { position: fixed; left: 0; top: 0; z-index: 70;
            --largura-trilho: 244px; width: 244px; flex-basis: 244px;
            transform: translateX(-100%); transition: transform .22s ease;
            box-shadow: 0 0 30px rgba(0,0,0,.16); }
  body.trilho-aberto .trilho { transform: none; }
  body.trilho-aberto .capa-trilho { display: block; position: fixed; inset: 0;
                                    z-index: 60; background: rgba(15,25,35,.34); }
  /* No celular o trilho vira gaveta: o estado "recolhido" não se aplica. */
  body.trilho-recolhido .trilho .marca,
  body.trilho-recolhido .trilho-item .rotulo,
  body.trilho-recolhido .trilho-item .seta,
  body.trilho-recolhido .trilho-item .selo,
  body.trilho-recolhido .submenu,
  body.trilho-recolhido .trilho-rodape-texto { display: revert; }
  body.trilho-recolhido .trilho-item { justify-content: flex-start; padding: 8px 9px; }
  body.trilho-recolhido .trilho-topo { justify-content: flex-start; padding: 0 10px; }
  .so-celular { display: inline-flex; }
  main, .rodape { padding: 0 14px; }
}
/* --- rodapé -------------------------------------------------------------- */
.rodape { max-width: 1180px; margin: 0 auto 30px; padding: 12px 18px;
          color: var(--tenue); font-size: 13px; border-top: 1px solid var(--borda); }

/* --- cartões de resumo --------------------------------------------------- */
.cartoes { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.cartao  { flex: 1 1 165px; background: var(--papel); border: 1px solid var(--borda);
           border-radius: 8px; padding: 12px 14px; text-decoration: none; color: var(--texto);
           display: block; }
.cartao:hover     { border-color: var(--marca); }
.cartao.destaque  { border-color: var(--novo); background: var(--novo-fundo); }
.cartao-titulo    { display: block; font-size: 13px; color: var(--tenue); text-transform: uppercase;
                    letter-spacing: .6px; }
.cartao-numero    { display: block; font-size: 30px; font-weight: 700; line-height: 1.15; }
.cartao-nota      { display: block; font-size: 12px; color: var(--tenue); }

/* --- listas -------------------------------------------------------------- */
.lista { width: 100%; border-collapse: collapse; background: var(--papel);
         border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; }
.lista th { text-align: left; font-size: 12px; color: var(--tenue); text-transform: uppercase;
            letter-spacing: .5px; padding: 9px 12px; background: #f8fafb;
            border-bottom: 1px solid var(--borda); }
.lista td { padding: 11px 12px; border-bottom: 1px solid var(--borda); vertical-align: top; }
.lista tr:last-child td { border-bottom: none; }
.lista tr.nova    { background: var(--novo-fundo); }
.lista tr.falha   { background: var(--alerta-fundo); }
.lista tr.inativa { opacity: .55; }
.lista.compacta td, .lista.compacta th { padding: 7px 10px; font-size: 13px; }

.col-data   { width: 130px; font-size: 13px; }
.col-doc    { width: 108px; }
.col-acao   { width: 140px; text-align: right; }
.col-estado { width: 260px; font-size: 13px; }

.fonte-nome { font-weight: 600; }
.resumo     { margin-top: 2px; }
.acoes      { margin-top: 5px; display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.tenue      { color: var(--tenue); font-size: 13px; }
.obs        { margin-top: 3px; font-style: italic; }
.alerta     { color: var(--alerta); }
.vazio      { color: var(--tenue); padding: 26px; text-align: center;
              background: var(--papel); border: 1px dashed var(--borda); border-radius: 8px; }

.lista-simples { margin: 0; padding-left: 18px; }
.lista-simples li { margin: 4px 0; }

/* --- etiquetas ----------------------------------------------------------- */
.etiqueta { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .4px;
            padding: 2px 7px; border-radius: 4px; background: var(--marca-clara);
            color: var(--marca); text-transform: uppercase; }
.doc-nfe  { background: #e7f1f6; color: #0b4f6c; }
.doc-nfce { background: #edeaf8; color: #4b3c8f; }
.doc-cte  { background: #e6f4ec; color: #17683f; }
.doc-mdfe { background: #fdefe2; color: #99521a; }
.doc-nfse { background: #fbe9f0; color: #93315b; }
.doc-geral{ background: #eceff2; color: #4a5560; }

.pri-urgente { background: #fdeeee; color: #b23b3b; }
.pri-alta    { background: #fdefe2; color: #99521a; }
.pri-normal  { background: #eceff2; color: #4a5560; }
.pri-baixa   { background: #f2f4f6; color: #8a93a1; }

.sit-nova       { background: #e7f1f6; color: #0b4f6c; }
.sit-fazendo    { background: #fff4d6; color: #7a5a05; }
.sit-aguardando { background: #eceff2; color: #4a5560; }
.sit-concluida  { background: #eaf7f0; color: #0a7d4a; }
.sit-descartada { background: #f2f4f6; color: #8a93a1; }

/* --- formulários --------------------------------------------------------- */
.formulario { background: var(--papel); border: 1px solid var(--borda); border-radius: 8px;
              padding: 16px; margin-bottom: 18px; }
label  { display: block; margin-bottom: 12px; font-size: 13px; color: var(--tenue); }
label.caixa { display: flex; align-items: center; gap: 7px; color: var(--texto); font-size: 14px; }
input[type=text], input[type=url], input[type=password], input[type=email], input[type=date],
select, textarea {
  width: 100%; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 6px;
  font: inherit; font-size: 14px; color: var(--texto); background: #fff; margin-top: 3px;
}
label.caixa input[type=checkbox] { width: auto; margin: 0; }
textarea { resize: vertical; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
.linha   { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.linha > label { flex: 0 1 auto; margin-bottom: 12px; }
.linha > label.cresce, .cresce { flex: 1 1 240px; }

button, .botao {
  display: inline-block; padding: 8px 15px; border-radius: 6px; border: 1px solid var(--marca);
  background: var(--marca); color: #fff; font: inherit; font-size: 14px; cursor: pointer;
  text-decoration: none; line-height: 1.35;
}
button:hover, .botao:hover { filter: brightness(1.12); }
.secundario   { background: #fff; color: var(--marca); }
.tenue-botao  { background: #fff; color: var(--tenue); border-color: var(--borda); font-size: 13px;
                padding: 6px 10px; }
.perigo       { color: var(--alerta); border-color: #edc9c9; }
.botoes       { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.embutido     { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.empilha      { display: flex; flex-direction: column; gap: 5px; align-items: stretch; }
.empilha button, .empilha .botao { text-align: center; }
.barra-acao   { margin: 12px 0; }

.filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 0 0 12px; }
.filtros select { width: auto; min-width: 165px; margin-top: 0; }

.criar-rapida { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.criar-rapida input[type=text] { flex: 1 1 320px; margin-top: 0; }
.criar-rapida select { width: auto; margin-top: 0; }

.linha-item { display: flex; gap: 8px; margin-top: 10px; align-items: flex-start; }
.linha-item input[type=text], .linha-item textarea { flex: 1; margin-top: 0; }

/* --- blocos e recados ---------------------------------------------------- */
.bloco { background: var(--papel); border: 1px solid var(--borda); border-radius: 8px;
         padding: 16px; margin-bottom: 18px; }
.cabecalho-detalhe { display: flex; gap: 18px; justify-content: space-between;
                     align-items: flex-start; flex-wrap: wrap; margin-bottom: 14px; }
.cabecalho-detalhe h1 { margin: 6px 0 2px; }
.resumo-grande { font-size: 16px; margin: 0 0 16px; }

.recado { padding: 10px 14px; border-radius: 6px; margin-bottom: 14px; border: 1px solid; }
.recado.ok    { background: var(--novo-fundo);   border-color: #bfe3ce; color: #0a5c37; }
.recado.erro  { background: var(--alerta-fundo); border-color: #edc9c9; color: #8d2c2c; }
.recado.aviso { background: var(--aviso-fundo);  border-color: #eddfae; color: #7a5a05; }

.caixa-alerta { background: var(--alerta-fundo); border: 1px solid #edc9c9; border-radius: 8px;
                padding: 12px 16px; margin-bottom: 18px; }
.caixa-alerta ul { margin: 8px 0 0; padding-left: 18px; }

.ajuda { margin: 8px 0 14px; font-size: 13px; color: var(--tenue); }
.ajuda summary { cursor: pointer; color: var(--marca); }
.ajuda ul { margin: 6px 0; }
.ajuda code { font-size: 12px; }

/* --- detalhe da mudança -------------------------------------------------- */
.itens { margin: 0; padding-left: 18px; }
.itens li { margin: 7px 0; }
.itens.novos li::marker     { color: var(--novo); }
.itens.removidos li::marker { color: var(--tenue); }
.itens.removidos li         { color: var(--tenue); text-decoration: line-through; }
.texto-item { margin-top: 2px; }

.diff { line-height: 1.45; }
.diff .mais  { display: block; background: var(--novo-fundo);   color: #0a5c37; }
.diff .menos { display: block; background: var(--alerta-fundo); color: #8d2c2c; }

/* --- tarefas ------------------------------------------------------------- */
.checklist { list-style: none; margin: 0; padding: 0; }
.checklist li { padding: 4px 0; border-bottom: 1px solid var(--borda); }
.checklist li:last-child { border-bottom: none; }
.checklist li.feito span { text-decoration: line-through; color: var(--tenue); }
.checklist .embutido { width: 100%; }
.checklist .embutido span { flex: 1; }
.marcador { background: #fff; color: var(--marca); border-color: var(--borda);
            padding: 2px 9px; font-size: 15px; }

.nota { border-left: 3px solid var(--borda); padding: 6px 0 6px 12px; margin-top: 12px; }
.nota-texto { margin-top: 2px; }

/* --- telefone ------------------------------------------------------------ */
@media (max-width: 720px) {
  .col-data, .col-doc, .col-acao, .col-estado { width: auto; }
  .lista, .lista tbody, .lista tr, .lista td { display: block; width: 100%; }
  .lista thead { display: none; }
  .lista tr { border-bottom: 1px solid var(--borda); }
  .lista td { border-bottom: none; padding: 5px 12px; }
  .lista td:first-child { padding-top: 11px; }
  .lista td:last-child  { padding-bottom: 11px; text-align: left; }
  .cartao { flex: 1 1 132px; }
}

/* --- tela de login ------------------------------------------------------- */
.tela-login { display: flex; align-items: center; justify-content: center;
              min-height: 100vh; padding: 20px; }
.cartao-login { background: var(--papel); border: 1px solid var(--borda); border-radius: 10px;
                padding: 26px; width: 100%; max-width: 380px; }
.cartao-login h1 { margin: 0 0 20px; color: var(--marca); }
.cartao-login button { width: 100%; margin-top: 6px; padding: 10px; }

/* ===========================================================================
   Seção Arquivos — gerenciador no formato de pastas
   ========================================================================= */
.explorador { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; }

.arv { flex: 0 0 232px; background: var(--papel); border: 1px solid var(--borda);
       border-radius: 8px; padding: 8px; max-height: 62vh; overflow: auto; }
.campo-titulo { font-size: 11px; text-transform: uppercase; letter-spacing: .6px;
                color: var(--tenue); padding: 4px 8px 8px; }
.arv-item { display: flex; align-items: center; gap: 7px; padding: 5px 8px; border-radius: 6px;
            color: var(--texto); text-decoration: none; font-size: 13px; }
.arv-item:hover { background: #fff; }
.arv-item.atual { background: var(--marca-clara); color: var(--marca); font-weight: 600; }
.arv-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.arv-item svg  { color: var(--tenue); flex-shrink: 0; }
.arv-item.atual svg { color: var(--marca); }

.lista-arq { flex: 1; min-width: 0; }
.migalhas { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
            padding: 0 2px 10px; font-size: 13.5px; }
.migalhas .sep { color: var(--tenue); }

.rolagem-arq { overflow-x: auto; }
.tabela-arq { table-layout: auto; }
.tabela-arq th a { color: inherit; text-decoration: none; }
.tabela-arq th.ordenada a { color: var(--marca); }
.tabela-arq td { padding: 6px 10px; }
.tabela-arq tr:hover td { background: #f8fafb; }
.col-marca { width: 30px; }
.col-modificado { width: 132px; white-space: nowrap; }
.col-tipo { width: 168px; }
.col-tamanho { width: 96px; text-align: right; white-space: nowrap; }
.tabela-arq .col-acao { width: 74px; }

.item-nome { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--texto); }
.item-nome:hover span { text-decoration: underline; }
.item-nome svg { color: var(--tenue); flex-shrink: 0; }
.item-nome.pasta { font-weight: 600; }
.item-nome.pasta svg { color: #c9922f; }
.vazio-linha { text-align: center; color: var(--tenue); padding: 30px 12px; }

.barra-selecao { display: flex; align-items: center; gap: 8px; padding: 8px 12px; margin-bottom: -1px;
                 background: var(--marca-clara); border: 1px solid var(--borda);
                 border-radius: 8px 8px 0 0; font-size: 13px; }

.paginacao { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; padding: 10px 2px; font-size: 13px; }
.paginacao a { padding: 3px 9px; border: 1px solid var(--borda); border-radius: 6px;
               text-decoration: none; background: var(--papel); }
.paginacao a.atual { background: var(--marca); color: #fff; border-color: var(--marca); }

.barra-progresso { height: 8px; background: #eef1f4; border-radius: 8px; overflow: hidden; margin-bottom: 8px; }
.barra-progresso > div { height: 100%; width: 0; background: var(--marca); transition: width .2s; }
.falhas-envio { margin-top: 10px; max-height: 210px; overflow: auto; font-size: 12.5px;
                border: 1px solid #edc9c9; background: var(--alerta-fundo);
                border-radius: 6px; padding: 8px 10px; color: #8d2c2c; }

.capa-solta { position: fixed; inset: 0; z-index: 60; background: rgba(11,79,108,.14);
              backdrop-filter: blur(1px); display: flex; align-items: center; justify-content: center;
              /* Cinto e suspensório: se um dia ela voltar a aparecer sem querer,
                 não pode roubar clique de ninguém. O drop é escutado na janela,
                 então isto não atrapalha o arrastar-e-soltar. */
              pointer-events: none; }
.capa-solta > div { background: var(--papel); border: 2px dashed var(--marca); color: var(--marca);
                    border-radius: 12px; padding: 26px 40px; font-size: 17px; font-weight: 600; }

@media (max-width: 860px) {
  .explorador { flex-direction: column; }
  .arv { flex: 1 1 auto; width: 100%; max-height: 200px; }
  .col-tipo, .col-modificado { display: none; }
}

/* ===========================================================================
   O atributo hidden tem de VENCER.
   ---------------------------------------------------------------------------
   O navegador implementa [hidden] como `display: none` na folha padrão dele —
   que perde para QUALQUER regra de display escrita aqui. Foi assim que
   `.capa-solta { display: flex }` deixou a capa de arrastar-e-soltar visível
   desde o carregamento, cobrindo a tela e comendo os cliques, e a barra de
   seleção anunciando "0 selecionados".
   Esta regra fecha a classe inteira do defeito, não só os dois casos.
   ========================================================================= */
[hidden] { display: none !important; }

/* ===========================================================================
   Seção Servidor — risco de recuperação por ociosidade
   ========================================================================= */
.veredito { border: 1px solid var(--borda); border-radius: 10px;
            padding: 16px 18px; margin-bottom: 18px; background: var(--papel); }
.veredito h2 { margin: 0 0 6px; font-size: 18px; }
.veredito p  { margin: 0 0 6px; }
.veredito.seguro { background: var(--novo-fundo); border-color: #bfe3ce; }
.veredito.seguro h2 { color: #0a5c37; }
.veredito.perigo { background: var(--alerta-fundo); border-color: #edc9c9; }
.veredito.perigo h2 { color: #8d2c2c; }
.veredito.neutro { background: var(--aviso-fundo); border-color: #eddfae; }
.veredito .ressalva { margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(0,0,0,.09);
                      font-size: 13px; }

.metricas { display: flex; gap: 14px; flex-wrap: wrap; }
.metrica  { flex: 1 1 240px; border: 1px solid var(--borda); border-radius: 9px; padding: 12px 14px; }
.metrica-topo { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.metrica-nome { font-weight: 600; }
.metrica-valor { font-size: 21px; font-weight: 700; }
.metrica-valor.ok    { color: var(--novo); }
.metrica-valor.risco { color: var(--alerta); }
.metrica-pe { display: flex; justify-content: space-between; gap: 8px; margin-top: 7px; font-size: 12.5px; }
.ok-texto    { color: var(--novo); font-weight: 600; }
.risco-texto { color: var(--alerta); font-weight: 600; }
.metrica-nota { margin-top: 6px; font-size: 12px; line-height: 1.45; }

/* O medidor traz a linha do limite DENTRO da barra: sem ela o número sozinho
   não diz de que lado da fronteira a máquina está. */
.medidor { position: relative; height: 9px; background: #eef1f4;
           border-radius: 9px; overflow: hidden; }
.medidor-preenche { height: 100%; border-radius: 9px; transition: width .3s; }
.medidor-preenche.ok    { background: var(--novo); }
.medidor-preenche.risco { background: #d8a33c; }
.medidor-linha { position: absolute; top: -2px; bottom: -2px; width: 2px;
                 background: var(--alerta); z-index: 2; }

.cartao.destaque-alerta { border-color: #edc9c9; background: var(--alerta-fundo); }

.grafico-servidor { position: relative; display: flex; align-items: flex-end; gap: 1px;
                    height: 170px; padding: 4px 0; border-bottom: 1px solid var(--borda); }
.grafico-col { flex: 1; height: 100%; display: flex; align-items: flex-end;
               gap: 1px; min-width: 2px; }
.grafico-col:hover { background: rgba(11,79,108,.05); }
.barra-cpu { flex: 1; background: var(--marca); border-radius: 2px 2px 0 0; min-height: 1px; }
.barra-mem { flex: 1; background: #7fb3c4; border-radius: 2px 2px 0 0; min-height: 1px; }
.grafico-linha-limite { position: absolute; left: 0; right: 0; height: 0;
                        border-top: 1px dashed var(--alerta); z-index: 3; }
.grafico-linha-limite span { position: absolute; right: 0; top: -16px; font-size: 11px;
                             color: var(--alerta); background: var(--papel); padding: 0 4px; }
.legenda-servidor { display: flex; gap: 16px; flex-wrap: wrap; align-items: center;
                    padding-top: 9px; font-size: 12.5px; }
.legenda-servidor i { display: inline-block; width: 10px; height: 10px;
                      border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.cor-cpu { background: var(--marca); }
.cor-mem { background: #7fb3c4; }

.selo.alerta-selo { background: var(--alerta); color: #fff; }
