/* ==========================================================================
   lawllit.quinhão · visual próprio, tema claro
   Estrutura inspirada em painel administrativo (topo, menu lateral, cartões),
   com paleta azul aço e acento cobre. Requer Bootstrap 5 (grade, utilitários,
   modal, dropdown e abas) e Font Awesome. Fonte Inter local (licença OFL).
   ========================================================================== */

@font-face{font-family:"Inter";src:url("../fonts/inter/inter-latin-wght-normal.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";src:url("../fonts/inter/inter-latin-ext-wght-normal.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- Tokens ---------- */
:root{
  --fonte:"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --primaria:#1E4A7A; --primaria-escura:#153659; --primaria-mais-escura:#0F2742;
  --primaria-clara:#E8EEF6; --primaria-suave:#C9D6E8; --primaria-fundo:#F4F7FB;
  --grafico:#2F7DD1;
  --acento:#B45309; --acento-fundo:#FDF1E4; --acento-linha:#F3D2AE;
  --fundo:#F3F4F6; --superficie:#FFFFFF;
  --texto:#1F2328; --texto-2:#3D444D; --texto-suave:#57606A; --texto-fraco:#6E7781;
  --linha:#E1E4E8; --linha-forte:#C4CAD1;
  --sucesso:#15803D; --sucesso-fundo:#E9F7EE; --sucesso-linha:#B9E3C7;
  --atencao:#92400E; --atencao-fundo:#FEF3E2; --atencao-linha:#F6D9A8;
  --erro:#B42318; --erro-fundo:#FDECEA; --erro-linha:#F5C2BD;
  --info:#1E4A7A; --info-fundo:#E8EEF6; --info-linha:#C9D6E8;
  --raio:12px; --raio-pequeno:8px;
  --sombra:0 1px 2px rgba(16,24,40,.05),0 2px 8px rgba(16,24,40,.04);
  --sombra-media:0 10px 28px rgba(16,24,40,.12);
  --altura-topo:60px; --largura-menu:248px;
  --foco:0 0 0 3px rgba(30,74,122,.30);
  --curva:cubic-bezier(.16,1,.3,1);
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--altura-topo) + 16px)}
body{margin:0;font-family:var(--fonte);font-feature-settings:"cv11","ss03";background:var(--fundo);color:var(--texto);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--primaria);text-decoration:none;text-underline-offset:3px}
a:hover{color:var(--primaria-escura);text-decoration:underline}
::selection{background:var(--primaria-suave);color:var(--texto)}
:focus-visible{outline:2px solid var(--primaria);outline-offset:2px}
h1,h2,h3{text-wrap:balance}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.mono{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--texto-suave)}
.sub-linha{display:block;font-size:12px;color:var(--texto-suave);margin-top:2px;font-weight:400}
.texto-suave{color:var(--texto-suave)}
.pular-conteudo{position:fixed;top:-60px;left:8px;z-index:5000;background:#fff;color:var(--primaria-escura);font-weight:700;padding:8px 14px;border-radius:8px;box-shadow:var(--sombra-media)}
.pular-conteudo:focus{top:8px}

/* ---------- Topo ---------- */
.topo{position:fixed;top:0;left:0;right:0;height:var(--altura-topo);z-index:1040;background:#fff;display:flex;align-items:center;gap:14px;padding:0 20px 0 16px;border-top:3px solid var(--primaria);box-shadow:0 1px 0 var(--linha),0 4px 16px rgba(0,0,0,.035)}
.topo .espaco{flex:1}
.menu-alternar{display:none;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--texto-suave);font-size:16px;place-items:center}
.menu-alternar:hover{background:var(--primaria-fundo);color:var(--primaria)}
.marca{display:inline-flex;align-items:baseline;font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--texto);white-space:nowrap}
.marca:hover{text-decoration:none;color:var(--texto)}
.marca-ponto{color:var(--acento)}
.marca-sufixo{color:var(--primaria)}
.ambiente{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--atencao);background:var(--atencao-fundo);border:1px solid var(--atencao-linha);border-radius:999px;padding:2px 11px;white-space:nowrap}
.usuario-botao{display:flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;border-radius:12px;padding:5px 10px 5px 6px;color:var(--texto);font:inherit;text-align:left;cursor:pointer}
.usuario-botao:hover,.usuario-botao[aria-expanded="true"]{background:var(--primaria-fundo);border-color:var(--primaria-suave)}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--grafico),var(--primaria));color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.usuario-texto{font-size:13.5px;font-weight:600;line-height:1.25}
.usuario-texto small{display:block;font-size:12px;color:var(--texto-suave);font-weight:400}
.menu-usuario{min-width:220px;border-radius:12px;border:1px solid var(--linha);box-shadow:var(--sombra-media);padding:6px;font-size:13.5px}
.menu-usuario .dropdown-item{border-radius:8px;padding:8px 10px;display:flex;gap:10px;align-items:center}
.menu-usuario .dropdown-item:hover{background:var(--primaria-fundo)}
.menu-usuario form{margin:0}

/* ---------- Menu lateral ---------- */
.menu-lateral{position:fixed;top:var(--altura-topo);bottom:0;left:0;width:var(--largura-menu);background:#fff;border-right:1px solid var(--linha);padding:14px 12px 12px;z-index:1020;display:flex;flex-direction:column;transition:width .25s var(--curva)}
.menu-itens{flex:1;overflow-y:auto;overflow-x:hidden}
.menu-grupo{padding:12px 8px 4px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--texto-fraco)}
.menu-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;color:var(--texto-2);font-size:13.5px;font-weight:600;margin-bottom:2px;white-space:nowrap}
.menu-icone{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;color:var(--texto-fraco);font-size:14.5px}
.menu-item:hover{background:var(--fundo);color:var(--primaria-escura);text-decoration:none}
.menu-item:hover .menu-icone{color:var(--primaria)}
.menu-item.ativo{background:var(--primaria-clara);color:var(--primaria-escura);font-weight:700}
.menu-item.ativo .menu-icone{background:#fff;color:var(--primaria);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.menu-rodape{border-top:1px solid var(--linha);padding-top:10px;margin-top:8px}
.menu-recolher{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--texto-suave);font:600 13px/1 var(--fonte);padding:8px;border-radius:10px;cursor:pointer;white-space:nowrap}
.menu-recolher i{width:32px;text-align:center;transition:transform .25s var(--curva)}
.menu-recolher:hover{background:var(--fundo);color:var(--primaria)}
@media (min-width:993px){
  html.menu-recolhido{--largura-menu:76px}
  html.menu-recolhido .menu-texto,html.menu-recolhido .menu-recolher span,html.menu-recolhido .menu-grupo span{display:none}
  html.menu-recolhido .menu-item,html.menu-recolhido .menu-recolher{justify-content:center}
  html.menu-recolhido .menu-recolher i{transform:rotate(180deg)}
  html.menu-recolhido .menu-grupo{padding:6px 0 2px;border-top:1px dashed var(--linha);margin:4px 10px 0}
  .conteudo{transition:margin-left .25s var(--curva)}
}

/* ---------- Página ---------- */
.conteudo{margin-left:var(--largura-menu);margin-top:var(--altura-topo);padding:22px 28px 32px;min-width:0;min-height:calc(100vh - var(--altura-topo))}
.cabecalho-pagina{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.cabecalho-pagina h1{font-size:21px;font-weight:700;margin:0;line-height:1.25;letter-spacing:-.01em}
.cabecalho-pagina > div:first-child{flex:1 1 320px;min-width:0}
.cabecalho-pagina .subtitulo{font-size:13px;color:var(--texto-suave);margin:3px 0 0}
.cabecalho-pagina .acoes{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.trilha{font-size:12.5px;color:var(--texto-suave);margin-bottom:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.trilha a{font-weight:600}
.contexto{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:10px 16px;margin-bottom:16px;font-size:13px;color:var(--texto-suave)}
.contexto span{display:inline-flex;gap:6px;align-items:baseline;white-space:nowrap}
.contexto b{color:var(--texto);font-weight:600}
.contexto i{color:var(--texto-fraco);font-size:12px}

/* ---------- Cartões e indicadores ---------- */
.cartao{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);margin-bottom:18px;min-width:0}
.cartao-cabecalho{padding:12px 16px;border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:52px}
.cartao-cabecalho h2{font-size:15px;font-weight:700;margin:0}
.cartao-cabecalho > i{width:30px;height:30px;border-radius:9px;background:var(--primaria-clara);color:var(--primaria);display:inline-grid;place-items:center;font-size:13.5px;flex:none}
.cartao-cabecalho .cartao-sub{font-size:12.5px;color:var(--texto-suave)}
.cartao-cabecalho .acoes{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.cartao-corpo{padding:16px}
.cartao-estreito{max-width:720px}
.cartao-rodape{padding:10px 16px;border-top:1px solid var(--linha);font-size:12.5px;color:var(--texto-suave);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.indicadores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);margin-bottom:18px}
.indicadores.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.indicadores.c5{grid-template-columns:repeat(5,minmax(0,1fr))}
.indicadores > div{padding:15px 20px;border-left:1px solid var(--linha);min-width:0}
.indicadores > div:first-child{border-left:0}
.indicadores .rotulo{font-size:12.5px;color:var(--texto-suave);font-weight:600;display:flex;align-items:center;gap:8px}
.indicadores .rotulo i{color:var(--grafico)}
.indicadores .valor{font-size:26px;font-weight:700;line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.indicadores .valor small{font-size:14px;font-weight:600;color:var(--texto-suave);letter-spacing:0}
.indicadores .dica{font-size:12.5px;color:var(--texto-suave);margin-top:3px}

/* ---------- Tabelas ---------- */
.tabela-rolagem{overflow-x:auto}
.tabela-rolagem.alta{max-height:520px;overflow:auto}
.tabela{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.tabela thead th{background:var(--primaria-fundo);color:var(--primaria-escura);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.3px;padding:10px 12px;border-bottom:1px solid var(--primaria-suave);white-space:nowrap;position:sticky;top:0;z-index:2;text-align:left}
.tabela thead th.num{text-align:right}
.tabela tbody td{padding:9px 12px;border-bottom:1px solid var(--linha);vertical-align:middle}
.tabela tbody tr:last-child td{border-bottom:0}
.tabela tbody tr:hover{background:#F8FAFD}
.tabela tbody tr.inativa td{color:var(--texto-fraco)}
.tabela tbody tr.grupo td{background:var(--fundo);font-weight:700;color:var(--texto-2);font-size:12.5px}
.tabela tfoot td{padding:10px 12px;background:var(--primaria-fundo);font-weight:700;color:var(--primaria-escura);border-top:1px solid var(--primaria-suave);font-variant-numeric:tabular-nums}
.tabela td.acoes-linha{text-align:right;white-space:nowrap}
.tabela td.acoes-linha > * + *{margin-left:4px}
.nome-linha{font-weight:600;color:var(--texto)}
.diferenca-alta{color:var(--atencao);font-weight:700}

/* ---------- Selos ---------- */
.selo{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:1px 10px;font-size:12px;font-weight:700;white-space:nowrap;line-height:1.7}
.selo-ok{background:var(--sucesso-fundo);color:var(--sucesso)}
.selo-alerta{background:var(--atencao-fundo);color:var(--atencao)}
.selo-erro{background:var(--erro-fundo);color:var(--erro)}
.selo-neutro{background:#EEF1F4;color:#4A5561}
.selo-info{background:var(--info-fundo);color:var(--primaria-escura)}
.selo-suape{background:var(--acento-fundo);color:var(--acento);border:1px solid var(--acento-linha)}
.selo-cheio{background:var(--primaria);color:#fff}

/* ---------- Botões ---------- */
.btn{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;align-items:center;gap:7px;justify-content:center}
.btn:focus-visible{box-shadow:var(--foco);outline:0}
.btn-principal{background:var(--primaria);border:1px solid var(--primaria);color:#fff;font-weight:600;border-radius:9px;padding:8px 16px;font-size:13.5px}
.btn-principal:hover,.btn-principal:focus{background:var(--primaria-escura);border-color:var(--primaria-escura);color:#fff;text-decoration:none}
.btn-principal:disabled,.btn-principal.disabled{background:#9AAEC6;border-color:#9AAEC6;color:#fff;opacity:1}
.btn-secundario{background:#fff;border:1px solid var(--linha-forte);color:var(--primaria-escura);font-weight:600;border-radius:9px;padding:8px 16px;font-size:13.5px}
.btn-secundario:hover,.btn-secundario:focus{background:var(--primaria-clara);border-color:var(--primaria);color:var(--primaria-escura);text-decoration:none}
.btn-discreto{background:transparent;border:1px solid transparent;color:var(--primaria-escura);font-weight:600;border-radius:9px;padding:5px 9px;font-size:13px}
.btn-discreto:hover{background:var(--primaria-clara);color:var(--primaria-escura)}
.btn-perigo{background:#fff;border:1px solid var(--erro-linha);color:var(--erro);font-weight:600;border-radius:9px;padding:8px 16px;font-size:13.5px}
.btn-perigo:hover{background:var(--erro-fundo);border-color:var(--erro);color:var(--erro)}
.btn-pequeno{padding:5px 11px;font-size:12.5px;border-radius:8px}
.btn-icone{width:32px;height:32px;padding:0}

/* ---------- Formulários ---------- */
.form-label{font-size:12.5px;font-weight:700;color:var(--texto-2);margin-bottom:4px}
.obrigatorio::after{content:" *";color:var(--erro)}
.form-control,.form-select{font-size:13.5px;border-radius:9px;border:1px solid var(--linha-forte);padding:7px 11px;color:var(--texto)}
.form-control:focus,.form-select:focus{border-color:var(--primaria);box-shadow:var(--foco)}
.form-control:disabled,.form-select:disabled,.form-control[readonly]{background-color:#F1F3F6;color:var(--texto-2)}
.form-check-input:checked{background-color:var(--primaria);border-color:var(--primaria)}
.form-check-input:focus{box-shadow:var(--foco);border-color:var(--primaria)}
.opcao-chave{display:flex;align-items:center;gap:16px;border:1px solid var(--linha-forte);border-radius:var(--raio);padding:14px 16px;cursor:pointer;background:#fff;margin:0}
.opcao-chave:hover{border-color:var(--primaria);background:var(--primaria-fundo)}
.opcao-chave:has(input:checked){border-color:var(--acento-linha);background:var(--acento-fundo)}
.opcao-chave-texto{flex:1;min-width:0}
.opcao-chave-texto b{display:flex;align-items:center;gap:8px;font-size:14px}
.opcao-chave-texto b i{color:var(--acento)}
.opcao-chave-texto span{display:block;font-size:12.5px;color:var(--texto-suave);margin-top:2px}
.form-check-input.chave-grande{width:3.4em;height:1.85em;margin:0;flex:none;cursor:pointer;border-radius:2em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2357606A'/%3e%3c/svg%3e");background-position:left center;background-repeat:no-repeat;background-size:contain;appearance:none;transition:background-position .15s ease-in-out}
.form-check-input.chave-grande:checked{background-color:var(--acento);border-color:var(--acento);background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}
.dica-campo{font-size:12px;color:var(--texto-suave);display:block;margin-top:4px}
.field-validation-error,.text-danger{display:block;margin-top:3px;font-size:12.5px;color:var(--erro)!important}
.validation-summary-valid{display:none}
.input-validation-error{border-color:var(--erro)!important}
.filtros{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);padding:14px 16px;margin-bottom:16px}
.filtros .row{align-items:flex-end}
.btn-filtrar{min-width:120px;height:36px;padding-top:0;padding-bottom:0}
.rodape-formulario{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;margin-top:14px;border-top:1px solid var(--linha)}
.opcoes-modo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.opcao-modo{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--linha-forte);border-radius:var(--raio);padding:14px;cursor:pointer;background:#fff}
.opcao-modo:hover{border-color:var(--primaria);background:var(--primaria-fundo)}
.opcao-modo input{margin-top:3px}
.opcao-modo b{display:block;font-size:14px}
.opcao-modo span{font-size:12.5px;color:var(--texto-suave)}
.opcao-modo:has(input:checked){border-color:var(--primaria);background:var(--primaria-clara);box-shadow:var(--foco)}

/* ---------- Grade de pesos ---------- */
.campo-peso{max-width:120px;margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}
.soma-pesos{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:999px;padding:4px 14px;border:1px solid}
.soma-pesos.ok{background:var(--sucesso-fundo);color:var(--sucesso);border-color:var(--sucesso-linha)}
.soma-pesos.erro{background:var(--erro-fundo);color:var(--erro);border-color:var(--erro-linha)}
.barra-fixa{position:sticky;bottom:0;z-index:5;background:#fff;box-shadow:0 -4px 12px rgba(16,24,40,.06);border-top:1px solid var(--linha);padding:12px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-radius:0 0 var(--raio) var(--raio)}

/* ---------- Barras simples ---------- */
.barra-trilha{height:8px;background:#E9EDF2;border-radius:99px;overflow:hidden;min-width:80px}
.barra{height:100%;width:0;background:var(--grafico);border-radius:99px}
.barra.acento{background:var(--acento)}

/* ---------- Avisos e estados ---------- */
.aviso{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.55;margin-bottom:12px;border:1px solid}
.aviso > i{margin-top:3px;flex:none}
.aviso ul{margin:4px 0 0;padding-left:18px}
.aviso-info{background:var(--info-fundo);border-color:var(--info-linha);color:var(--primaria-mais-escura)}
.aviso-alerta{background:var(--atencao-fundo);border-color:var(--atencao-linha);color:#5E3A00}
.aviso-erro{background:var(--erro-fundo);border-color:var(--erro-linha);color:#7A1810}
.aviso-ok{background:var(--sucesso-fundo);border-color:var(--sucesso-linha);color:#0F5A2B}
.aviso a{color:inherit;font-weight:700;text-decoration:underline}
.vazio{text-align:center;padding:36px 16px;color:var(--texto-suave);font-size:13.5px}
.vazio > i{font-size:28px;color:#AEB8C4;display:block;width:fit-content;margin:0 auto 10px}
.vazio b{display:block;color:var(--texto-2);font-size:14px;margin-bottom:4px}
.etapas{display:flex;list-style:none;padding:0;margin:0 0 18px;background:#fff;border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);overflow-x:auto}
.etapas li{flex:1 1 0;min-width:140px;display:flex;gap:10px;align-items:flex-start;padding:13px 16px;color:var(--texto-suave);font-size:12.5px}
.etapas li + li{border-left:1px solid var(--linha)}
.etapas .bolinha{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:12px;font-weight:700;border:2px solid var(--linha-forte);background:#fff}
.etapas .titulo{display:block;font-size:13.5px;font-weight:700;color:var(--texto-2)}
.etapas li.feito .bolinha{background:var(--primaria);border-color:var(--primaria);color:#fff}
.etapas li.atual{background:var(--primaria-fundo)}
.etapas li.atual .bolinha{border-color:var(--primaria);color:var(--primaria-escura)}
.proxima-acao{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--primaria-suave);border-radius:var(--raio);padding:16px 18px;margin-bottom:18px;box-shadow:var(--sombra)}
.proxima-acao .icone-grande{width:44px;height:44px;border-radius:12px;background:var(--primaria-clara);color:var(--primaria);display:grid;place-items:center;font-size:19px;flex:none}
.proxima-acao h2{font-size:15px;font-weight:700;margin:0}
.proxima-acao p{margin:2px 0 0;font-size:13px;color:var(--texto-suave);max-width:75ch}
.proxima-acao .acoes{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.lista-alertas{list-style:none;margin:0;padding:0}
.lista-alertas li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--linha);font-size:13px}
.lista-alertas li:first-child{border-top:0;padding-top:0}
.lista-alertas i{color:var(--atencao);margin-top:3px}

/* ---------- Paginação ---------- */
.paginacao{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--linha);font-size:12.5px;color:var(--texto-suave)}
.paginacao-lista{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.paginacao-link,.paginacao-item > span{border:1px solid var(--linha-forte);border-radius:8px;min-width:32px;height:32px;padding:0 9px;display:inline-grid;place-items:center;color:var(--primaria-escura);background:#fff;font-variant-numeric:tabular-nums}
.paginacao-link:hover{background:var(--primaria-clara);text-decoration:none}
.paginacao-item.ativo .paginacao-link,.paginacao-item.ativo > span{background:var(--primaria);border-color:var(--primaria);color:#fff}
.paginacao-item.disabled > span,.paginacao-item.disabled .paginacao-link{color:#A9B3BE;background:#F7F8FA}

/* ---------- Abas ---------- */
.abas{display:flex;flex-wrap:nowrap;gap:2px;border-bottom:1px solid var(--linha-forte);margin-bottom:16px;overflow-x:auto;scrollbar-width:none;padding-left:0;list-style:none}
.abas::-webkit-scrollbar{display:none}
.abas .nav-link{border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--texto-2);font-weight:600;font-size:13.5px;padding:10px 14px;white-space:nowrap;background:none;margin-bottom:-1px}
.abas .nav-link:hover{color:var(--primaria-escura);background:var(--primaria-fundo)}
.abas .nav-link.active{color:var(--primaria-escura);border-bottom-color:var(--primaria);background:none}
.abas .contador{font-size:11.5px;background:#EEF1F4;color:var(--texto-2);border-radius:99px;padding:0 7px;margin-left:6px}

/* ---------- Modais ---------- */
.modal-content{border:0;border-radius:14px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.28)}
.modal-cabecalho{border-bottom:1px solid var(--linha);padding:16px 20px;display:flex;align-items:flex-start;gap:13px}
.modal-icone{width:40px;height:40px;border-radius:11px;background:var(--primaria-clara);color:var(--primaria);display:grid;place-items:center;font-size:17px;flex:none}
.modal-icone.perigo{background:var(--erro-fundo);color:var(--erro)}
.modal-icone.alerta{background:var(--atencao-fundo);color:var(--atencao)}
.modal-cabecalho h2{margin:0;font-size:17px;font-weight:700}
.modal-cabecalho .modal-sub{font-size:13px;color:var(--texto-suave);margin-top:2px}
.modal-cabecalho .btn-close{margin-left:auto}
.modal-body{padding:18px 20px;font-size:13.5px}
.modal-footer{border-top:1px solid var(--linha);padding:12px 20px;gap:8px}
.modal-backdrop.show{opacity:.45}
.modal-formulario .modal-dialog{max-width:560px}
.modal-nota{font-size:12.5px;color:var(--texto-suave)}
.modal-nota b{color:var(--texto)}
.modal-erro:empty{display:none}
.confirmacao-digitada{background:var(--fundo);border:1px solid var(--linha);border-radius:10px;padding:12px 14px;margin-top:12px}
.confirmacao-digitada input{max-width:220px;font-weight:700}

/* ---------- Carregamento e mensagens ---------- */
.carregando{position:fixed;inset:0;background:rgba(15,39,66,.30);z-index:4000;display:none;align-items:center;justify-content:center}
.carregando.ligado{display:flex}
.carregando .caixa{background:#fff;border-radius:12px;padding:14px 20px;display:flex;gap:12px;align-items:center;font-size:13.5px;font-weight:600;box-shadow:var(--sombra-media)}
.carregando .caixa i{color:var(--primaria);font-size:18px}
.mensagens{position:fixed;right:20px;bottom:20px;z-index:3000;display:flex;flex-direction:column;gap:8px;max-width:min(520px,calc(100vw - 32px))}
.mensagem{background:var(--primaria-mais-escura);color:#fff;border-radius:10px;padding:12px 12px 12px 16px;font-size:13.5px;box-shadow:var(--sombra-media);display:flex;align-items:flex-start;gap:10px;white-space:pre-line;animation:surge .35s var(--curva)}
.mensagem.erro{background:#8A1C12}
.mensagem.alerta{background:#7A3A06}
.mensagem > i{margin-top:3px}
.mensagem .fechar{background:none;border:0;color:#fff;margin-left:auto;width:26px;height:26px;border-radius:6px;display:grid;place-items:center;flex:none}
.mensagem .fechar:hover{background:rgba(255,255,255,.16)}
.mensagem.saindo{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.lista-carregando{opacity:.55;pointer-events:none;transition:opacity .15s}

/* ---------- Login ---------- */
body.tela-login{background:var(--fundo);min-height:100vh}
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)}
.login-destaque{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--primaria-mais-escura) 0%,var(--primaria) 100%);color:#fff;padding:48px 64px;display:flex;flex-direction:column}
.login-destaque .marca{font-size:26px;color:#fff;position:relative}
.login-destaque .marca-sufixo{color:#C9D6E8}
.login-texto{margin:auto 0;max-width:540px;position:relative}
.login-texto h1{font-size:46px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0 0 16px}
.login-texto p{font-size:17px;color:#C9D6E8;margin:0 0 30px;max-width:46ch}
.login-recursos{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.login-recursos li{display:flex;gap:14px;align-items:center;font-size:14.5px;color:#C9D6E8}
.login-recursos .icone{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:#F6C08A;font-size:16px;flex:none}
.login-recursos b{display:block;color:#fff;font-size:15px}
.login-rodape{position:relative;font-size:13px;color:#A9BDD6}
.login-painel{display:grid;place-items:center;padding:40px 32px;background:#fff}
.login-formulario{width:100%;max-width:380px}
.login-formulario h2{font-size:24px;font-weight:800;margin:0 0 6px}
.login-formulario .subtitulo{color:var(--texto-suave);margin:0 0 22px}
.campo-icone{position:relative}
.campo-icone > i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--texto-fraco);pointer-events:none}
.campo-icone .form-control{padding:11px 44px 11px 40px;font-size:15px;border-radius:11px}
.ver-senha{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;border-radius:8px;color:var(--texto-suave)}
.ver-senha:hover{background:var(--fundo);color:var(--primaria)}
.btn-entrar{width:100%;padding:12px 16px;font-size:15px;border-radius:11px}
@media (max-width:992px){.login{grid-template-columns:1fr}.login-destaque{padding:32px}.login-texto{margin:32px 0}.login-texto h1{font-size:34px}}

/* ---------- Página sem menu ---------- */
body.tela-simples{min-height:100vh;display:grid;place-items:center;padding:24px}
.simples{width:100%;max-width:520px;display:flex;flex-direction:column;align-items:center;gap:20px}
.simples .cartao{width:100%;margin:0}
.simples .marca{font-size:22px}

/* ---------- Manual ---------- */
.manual{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.manual-indice{position:sticky;top:calc(var(--altura-topo) + 16px);padding:12px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.manual-indice b{font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--texto-fraco);padding:4px 8px 6px}
.manual-indice a{padding:6px 8px;border-radius:8px;color:var(--texto-2);font-weight:600}
.manual-indice a:hover{background:var(--primaria-fundo);color:var(--primaria-escura);text-decoration:none}
.manual-conteudo .cartao-corpo{font-size:14px;line-height:1.65;max-width:860px}
.manual-conteudo ul,.manual-conteudo ol{padding-left:20px}
.manual-conteudo li{margin-bottom:6px}
.manual-conteudo section{scroll-margin-top:calc(var(--altura-topo) + 16px)}
@media (max-width:992px){.manual{grid-template-columns:1fr}.manual-indice{position:static}}

/* ---------- Seleção com busca (Select2) ---------- */
.select2-container{width:100%!important;font-size:13.5px}
.select2-container .select2-selection--single{height:36px;border:1px solid var(--linha-forte);border-radius:9px}
.select2-container .select2-selection--single .select2-selection__rendered{line-height:34px;padding-left:11px;color:var(--texto)}
.select2-container .select2-selection--single .select2-selection__arrow{height:34px}
.select2-container--focus .select2-selection--single,.select2-container--open .select2-selection--single{border-color:var(--primaria);box-shadow:var(--foco)}
.select2-dropdown{border-color:var(--linha-forte);border-radius:9px;overflow:hidden;box-shadow:var(--sombra-media);z-index:2000}
.select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--primaria);color:#fff}
.select2-search--dropdown .select2-search__field{border-radius:7px;border-color:var(--linha-forte)}

/* ---------- Movimento ---------- */
@keyframes surge{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .barra{transition:width .9s var(--curva)}
  .indicadores > div{animation:surge .45s var(--curva) both}
  .indicadores > div:nth-child(2){animation-delay:.05s}
  .indicadores > div:nth-child(3){animation-delay:.1s}
  .indicadores > div:nth-child(4){animation-delay:.15s}
  .indicadores > div:nth-child(5){animation-delay:.2s}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* ---------- Responsivo ---------- */
@media (max-width:1200px){
  .indicadores,.indicadores.c5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .indicadores > div:nth-child(odd){border-left:0}
  .indicadores > div:nth-child(n+3){border-top:1px solid var(--linha)}
}
@media (max-width:992px){
  .menu-alternar{display:grid}
  .menu-lateral{transform:translateX(-100%);transition:transform .25s var(--curva);visibility:hidden}
  body.menu-aberto .menu-lateral{transform:none;visibility:visible;box-shadow:var(--sombra-media)}
  .conteudo{margin-left:0}
  .conteudo{padding:16px}
  .cabecalho-pagina .acoes{margin-left:0;width:100%}
  .opcoes-modo{grid-template-columns:1fr}
}
@media (max-width:576px){
  .usuario-texto,.ambiente{display:none}
  .cabecalho-pagina h1{font-size:19px}
  .indicadores,.indicadores.c3,.indicadores.c5{grid-template-columns:1fr}
  .indicadores > div{border-left:0!important;border-top:1px solid var(--linha)}
  .indicadores > div:first-child{border-top:0}
}

/* ---------- Impressão ---------- */
@media print{
  .topo,.menu-lateral,.filtros,.sem-impressao,.mensagens,.carregando{display:none!important}
  .conteudo{margin:0;padding:0}
  .cartao{box-shadow:none;break-inside:avoid}
}
