/* ==========================================================================
   Sistema João Carlos de Paiva Advogados Associados
   Padrão visual aprovado em 13/10/2026: menu lateral claro, azul-marinho +
   vermelho JC, Open Sans, cartões arredondados, tema claro/escuro.
   ========================================================================== */

:root {
  --marinho:       #1E315D;   /* marca, botão principal, item ativo */
  --marinho-forte: #16264A;
  --azul:          #2E4E8F;   /* links, foco */
  --vermelho:      #B80000;   /* atraso, excluir */
  --vermelho-txt:  #9C0A00;

  --fundo:         #F6F7FA;
  --superficie:    #FFFFFF;
  --borda:         #E3E7EF;
  --borda-campo:   #CDD4E0;
  --divisor:       #EEF1F6;
  --hover:         #F0F3F8;
  --ativo-bg:      #E8EDF6;
  --texto:         #1B2333;
  --titulo:        #14213F;
  --texto-suave:   #5A6478;
  --texto-fraco:   #6B7487;
  --selo-bg:       #EEF1F6;
  --pontos:        #C9D2E3;

  --sucesso-bg: #E6F4EA; --sucesso-tx: #1E6B35;
  --erro-bg:    #FDF1F1; --erro-tx:    #9C0A00;
  --info-bg:    #EEF3FB; --info-tx:    #1E315D;
  --aviso-bg:   #FFF6E8; --aviso-tx:   #6E4200;

  --raio: 16px;
  --raio-p: 10px;
  --largura-menu: 264px;
  --largura-menu-recolhido: 76px;
  color-scheme: light;
}

/* ------------------------------------------------------------- Tema escuro */
:root[data-tema="escuro"] {
  --marinho:       #8FA9E0;
  --marinho-forte: #A9BFEB;
  --azul:          #9DB6EA;
  --vermelho:      #FF6B6B;
  --vermelho-txt:  #FF9C9C;
  --fundo:         #0F1524;
  --superficie:    #161E31;
  --borda:         #26314A;
  --borda-campo:   #34405C;
  --divisor:       #222C43;
  --hover:         #1E2840;
  --ativo-bg:      #233259;
  --texto:         #E4E8F1;
  --titulo:        #F2F5FA;
  --texto-suave:   #A9B2C6;
  --texto-fraco:   #8E98AE;
  --selo-bg:       #222C43;
  --pontos:        #26314A;
  --sucesso-bg: #12301E; --sucesso-tx: #7FD69C;
  --erro-bg:    #3A1618; --erro-tx:    #FF9C9C;
  --info-bg:    #1B2745; --info-tx:    #B7C9EF;
  --aviso-bg:   #33270F; --aviso-tx:   #F2C879;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--texto);
  background: var(--fundo);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--azul); }
img { max-width: 100%; }
.ic { flex: none; }
:root[data-tema="escuro"] .menu-logo,
:root[data-tema="escuro"] .acesso-logo { background: #FFFFFF; border-radius: 10px; padding: 6px 10px; }
:root[data-tema="escuro"] .acesso-logo { padding: 10px 14px; }

/* ------------------------------------------------------------- Botões de ícone */
.btn-icone {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; flex: none;
  border: 0; border-radius: var(--raio-p);
  background: transparent; color: var(--texto-suave);
  cursor: pointer; text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.btn-icone:hover { background: var(--hover); color: var(--marinho); }
.btn-borda { width: 44px; height: 44px; border: 1px solid var(--borda); background: var(--superficie); color: var(--texto); border-radius: 12px; }
.so-escuro { display: none; }
:root[data-tema="escuro"] .so-claro { display: none; }
:root[data-tema="escuro"] .so-escuro { display: inline-flex; }

/* ------------------------------------------------------------- Menu lateral */
.menu-lateral {
  position: fixed; inset: 0 auto 0 0; z-index: 30;
  width: var(--largura-menu);
  display: flex; flex-direction: column; gap: 8px;
  padding: 12px 12px;
  background: var(--superficie);
  border-right: 1px solid var(--borda);
  overflow-y: auto;
  transition: width .18s ease, transform .2s ease;
}
.menu-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 4px; }
.menu-logo { display: flex; align-items: center; }
.logo-completo { width: 150px; height: auto; display: block; }
.logo-icone { display: none; width: 36px; height: 36px; }

.menu { display: flex; flex-direction: column; gap: 2px; }
.menu-secao { font-size: 12px; font-weight: 600; color: var(--texto-fraco); padding: 0 12px 2px; }
.menu-atalhos { border-top: 1px solid var(--divisor); padding-top: 8px; }
.menu-item {
  display: flex; align-items: center; gap: 12px;
  min-height: 36px; padding: 0 12px;
  border-radius: var(--raio-p);
  color: var(--texto); text-decoration: none;
  font-size: 14px; font-weight: 500;
  transition: background .15s ease, color .15s ease;
}
.menu-item:hover { background: var(--hover); color: var(--marinho); }
.menu-item.ativo { background: var(--ativo-bg); color: var(--marinho); font-weight: 700; }
.menu-item .rotulo { flex: 1; white-space: nowrap; }
.menu-extra { color: var(--texto-fraco); display: inline-flex; }
.menu-selo {
  font-size: 10px; font-weight: 700; letter-spacing: .04em;
  color: var(--texto-fraco); background: var(--selo-bg);
  padding: 2px 7px; border-radius: 999px;
}

.menu-cabecalho { display: flex; align-items: center; gap: 10px; padding: 0 4px; }
.menu-cabecalho-titulo { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--titulo); }

.menu-rodape { margin-top: auto; display: flex; flex-direction: column; gap: 6px; padding-top: 8px; border-top: 1px solid var(--borda); }
.menu-rodape .btn-borda { width: 38px; height: 38px; border-radius: 10px; }
.menu-botoes { display: flex; justify-content: center; gap: 8px; }
.menu-usuario { display: flex; align-items: center; gap: 10px; padding: 0 4px; }
.avatar {
  width: 36px; height: 36px; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #1E315D; color: #fff; font-size: 13px; font-weight: 700; text-decoration: none;
}
.usuario-dados { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; flex: 1; }
.usuario-dados strong { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usuario-dados small { font-size: 12px; color: var(--texto-fraco); }

/* Menu recolhido (só ícones) - só em tela grande */
@media (min-width: 901px) {
  :root[data-menu="recolhido"] .menu-lateral { width: var(--largura-menu-recolhido); padding: 16px 12px; gap: 12px; }
  :root[data-menu="recolhido"] .menu-item { min-height: 38px; }
  :root[data-menu="recolhido"] .menu-botoes { gap: 6px; }
  :root[data-menu="recolhido"] .menu-rodape { gap: 8px; padding-top: 10px; }
  :root[data-menu="recolhido"] .menu-lateral .btn-borda { width: 40px; height: 40px; }
  :root[data-menu="recolhido"] .menu-logo { padding: 0; }
  :root[data-menu="recolhido"] .menu-lateral .rotulo,
  :root[data-menu="recolhido"] .menu-lateral .menu-secao,
  :root[data-menu="recolhido"] .menu-lateral .menu-extra,
  :root[data-menu="recolhido"] .menu-lateral .menu-selo,
  :root[data-menu="recolhido"] .logo-completo { display: none; }
  :root[data-menu="recolhido"] .logo-icone { display: block; }
  :root[data-menu="recolhido"] .menu-topo,
  :root[data-menu="recolhido"] .menu-cabecalho,
  :root[data-menu="recolhido"] .menu-botoes,
  :root[data-menu="recolhido"] .menu-usuario { flex-direction: column; align-items: center; }
  :root[data-menu="recolhido"] .menu-item { justify-content: center; padding: 0; }
  :root[data-menu="recolhido"] .conteudo { margin-left: var(--largura-menu-recolhido); }
}

/* Telas baixas: aperta mais um pouco para o menu caber sem rolar */
@media (min-width: 901px) and (max-height: 640px) {
  .menu-lateral { gap: 6px; padding-block: 10px; }
  .menu-item { min-height: 32px; font-size: 13.5px; }
  .menu-secao { display: none; }
  .logo-completo { width: 128px; }
  .menu-rodape .btn-borda { width: 34px; height: 34px; }
}

/* ------------------------------------------------------------- Conteúdo */
.conteudo { margin-left: var(--largura-menu); padding: 32px 36px 48px; min-height: 100vh; transition: margin-left .18s ease; }
.cabecalho-pagina { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.cabecalho-textos { min-width: 0; }
.trilha { font-size: 13px; color: var(--texto-fraco); margin-bottom: 4px; }
.trilha strong { color: var(--texto); font-weight: 600; }
.link-voltar { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; text-decoration: none; margin-bottom: 6px; }
.link-voltar:hover { text-decoration: underline; }
.titulo-pagina { margin: 0; font-size: 26px; font-weight: 700; color: var(--titulo); }
.descricao-pagina { margin: 4px 0 0; font-size: 14px; color: var(--texto-suave); max-width: 720px; }
.acoes-pagina { display: flex; flex-wrap: wrap; gap: 10px; }

.cartao {
  background: var(--superficie); border: 1px solid var(--borda);
  border-radius: var(--raio); padding: 24px; margin-bottom: 20px;
}
.cartao-estreito { max-width: 480px; }
.dica { margin: -4px 0 0; font-size: 12px; color: var(--texto-fraco); }

/* ------------------------------------------------------------- Formulários */
.form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo-rotulo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; font-weight: 600; }
.campo-rotulo a { font-size: 12px; font-weight: 600; text-decoration: none; }
.campo-rotulo a:hover { text-decoration: underline; }
.campo input, .campo select, .campo textarea {
  font: inherit; font-size: 15px; color: var(--texto);
  width: 100%; padding: 11px 14px;
  border: 1px solid var(--borda-campo); border-radius: var(--raio-p);
  background: var(--superficie);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.campo input:focus, .campo select:focus, .campo textarea:focus {
  outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(46, 78, 143, .2);
}
.campo-senha { position: relative; display: flex; }
.campo-senha input { padding-right: 48px; }
.btn-olho {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border: 0; background: none; color: var(--texto-suave);
  border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.btn-olho[aria-pressed="true"] { color: var(--azul); }
.input-codigo { font-size: 22px !important; letter-spacing: 8px; text-align: center; font-variant-numeric: tabular-nums; }
.lembrar { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--texto-suave); }
.lembrar input { width: 18px; height: 18px; margin: 0; accent-color: #1E315D; }
.form-acoes { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 0 20px;
  font: inherit; font-size: 14px; font-weight: 600;
  border-radius: var(--raio-p); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; transition: background .15s ease;
}
.btn-primario { background: #1E315D; color: #fff; }
.btn-primario:hover { background: #16264A; }
:root[data-tema="escuro"] .btn-primario { background: #3A5DA8; }
:root[data-tema="escuro"] .btn-primario:hover { background: #4A6DB8; }
.btn-secundario { background: var(--superficie); color: var(--marinho); border-color: var(--borda-campo); }
.btn-secundario:hover { background: var(--hover); }
.btn-perigo { background: var(--vermelho); color: #fff; }
.btn-bloco { width: 100%; height: 48px; font-size: 15px; }

/* ------------------------------------------------------------- Alertas */
.alerta { padding: 12px 14px; border-radius: var(--raio-p); font-size: 14px; margin-bottom: 14px; }
.alerta-sucesso { background: var(--sucesso-bg); color: var(--sucesso-tx); }
.alerta-erro    { background: var(--erro-bg);    color: var(--erro-tx); }
.alerta-info    { background: var(--info-bg);    color: var(--info-tx); }
.alerta-aviso   { background: var(--aviso-bg);   color: var(--aviso-tx); }

/* ------------------------------------------------------------- Cadastros */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.aviso-demo { font-size: 13px; }
.cartao-tabela { padding: 0; overflow: hidden; }
.cartao-cabecalho { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--divisor); }
.cartao-cabecalho h2 { margin: 0; font-size: 16px; font-weight: 700; color: var(--titulo); }
.cartao-cabecalho p { margin: 2px 0 0; font-size: 13px; color: var(--texto-suave); }

/* Filtros (abre/fecha) */
.filtros { padding: 0; }
.filtros-topo {
  display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 14px 20px; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: 16px; font-weight: 600; color: var(--titulo); text-align: left;
  border-radius: var(--raio);
}
.filtros-icone { width: 36px; height: 36px; border-radius: 10px; background: var(--info-bg); color: var(--marinho); display: inline-flex; align-items: center; justify-content: center; }
.filtros-seta { display: inline-flex; color: var(--texto-suave); transition: transform .15s ease; }
.filtros-topo[aria-expanded="false"] .filtros-seta { transform: rotate(180deg); }
.filtros-ativos { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--info-tx); background: var(--info-bg); padding: 2px 10px; border-radius: 999px; }
.filtros-corpo { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 20px; padding: 18px 20px 20px; border-top: 1px solid var(--divisor); }
.filtros-corpo[hidden] { display: none; }
.filtros-corpo .campo { flex: 1 1 180px; max-width: 260px; }
.filtros-corpo .filtro-busca { flex: 2 1 320px; max-width: none; }
.filtros-corpo select { padding-block: 10px; }
.btn-limpar { height: 44px; padding: 0 6px; border: 0; background: none; color: var(--azul); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.btn-limpar:hover { text-decoration: underline; }
.busca { position: relative; display: flex; }
.busca-ic { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--texto-fraco); display: flex; pointer-events: none; }
.busca input { flex: 1; padding-left: 40px !important; }

/* Tabela */
.tabela-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 18px 20px 14px; }
.tabela-topo-textos { flex: 1 1 240px; min-width: 0; }
.tabela-topo h2 { margin: 0; font-size: 16px; font-weight: 700; color: var(--azul); }
.tabela-topo p { margin: 2px 0 0; font-size: 13px; color: var(--texto-fraco); }
.contador { font-size: 13px; color: var(--texto-fraco); white-space: nowrap; }
.tabela-rolagem { overflow-x: auto; position: relative; margin: 0 16px 10px; }
.tabela { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.tabela th {
  text-align: left; font-size: 13.5px; font-weight: 600; color: var(--texto);
  background: var(--fundo); padding: 11px 14px; white-space: nowrap;
  border-bottom: 1px solid var(--borda);
}
.tabela th:first-child { border-top-left-radius: 10px; }
.tabela th:last-child { border-top-right-radius: 10px; }
.ordenar { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.ordenar-ic { display: inline-flex; color: var(--texto-fraco); }
.ordenar:hover, th[aria-sort="ascending"] .ordenar, th[aria-sort="descending"] .ordenar { color: var(--azul); }
th[aria-sort="ascending"] .ordenar-ic, th[aria-sort="descending"] .ordenar-ic { color: var(--azul); }
.tabela td { padding: 12px 14px; border-bottom: 1px solid var(--divisor); vertical-align: middle; background: var(--superficie); }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela tbody tr:hover td { background: var(--hover); }
.tabela .forte { font-weight: 600; }
.tabela .suave { display: block; font-size: 12px; color: var(--texto-fraco); }
.link-tabela { color: var(--texto); text-decoration: none; }
.link-tabela:hover { color: var(--azul); text-decoration: underline; }
/* Coluna Ações sempre visível (fixa à direita) */
.col-acoes { width: 1%; white-space: nowrap; text-align: right !important; position: sticky; right: 0; z-index: 1; }
.tabela-rolagem.rola .col-acoes { box-shadow: -10px 0 12px -10px rgba(20, 33, 63, .35); }
.acoes { display: inline-flex; align-items: center; gap: 2px; }
.acoes .btn-icone { width: 36px; height: 36px; }
@media (max-width: 1279px) { .acao-extra { display: none; } }
.btn-icone-perigo { color: var(--vermelho-txt); }
.btn-icone-perigo:hover { background: var(--erro-bg); color: var(--vermelho-txt); }
.tabela-vazia { margin: 0; padding: 28px 20px; text-align: center; color: var(--texto-fraco); font-size: 14px; }
.celula-usuario { display: flex; align-items: center; gap: 10px; min-width: 200px; }
.avatar-p { width: 32px; height: 32px; font-size: 12px; }
.celula-usuario a { font-weight: 600; text-decoration: none; color: var(--texto); }
.celula-usuario a:hover { color: var(--azul); text-decoration: underline; }

.selo { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); }
.selo-neutro  { background: var(--selo-bg);   color: var(--texto-suave); }
.selo-azul    { background: var(--info-bg);   color: var(--info-tx); }
.selo-verde   { background: var(--sucesso-bg); color: var(--sucesso-tx); }
.selo-vermelho{ background: var(--erro-bg);   color: var(--erro-tx); }
.selo-ambar   { background: var(--aviso-bg);  color: var(--aviso-tx); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 4px 2px 10px; border-radius: 999px; background: var(--info-bg); color: var(--info-tx); font-size: 12px; font-weight: 600; }
.chip button { width: 22px; height: 22px; border: 0; background: none; color: inherit; border-radius: 50%; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.chip button:hover { background: rgba(0, 0, 0, .08); }
.chip-add { background: none; border: 1px dashed var(--borda-campo); color: var(--azul); padding: 2px 10px; cursor: pointer; font: inherit; font-size: 12px; font-weight: 600; border-radius: 999px; }
.chip-add:hover { background: var(--hover); }
.texto-fraco { color: var(--texto-fraco); font-size: 13px; }

/* Campos: erro e grade */
.obrigatorio { color: var(--vermelho-txt); }
.dica-campo { font-size: 12px; color: var(--texto-fraco); }
.erro-campo { font-size: 12px; font-weight: 600; color: var(--vermelho-txt); }
.campo-com-erro input, .campo-com-erro select { border-color: var(--vermelho); box-shadow: 0 0 0 3px rgba(184, 0, 0, .12); }
.form-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px 20px; }
.campo-largo { grid-column: 1 / -1; }

.form-acoes-separadas { justify-content: space-between; flex-wrap: wrap; border-top: 1px solid var(--divisor); padding-top: 16px; margin-top: 4px; }
.btn-texto-perigo { color: var(--vermelho-txt); }
.btn-texto-perigo:hover { background: var(--erro-bg); }
.perfil strong { font-size: 17px; color: var(--titulo); }

/* Abas */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 20px; overflow-x: auto; }
.aba { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: none; font: inherit; font-size: 14px; font-weight: 600; color: var(--texto-suave); cursor: pointer; white-space: nowrap; }
.aba:hover { color: var(--marinho); }
.aba[aria-selected="true"] { color: var(--marinho); border-bottom-color: var(--marinho); font-weight: 700; }
.aba .contagem { padding: 0 8px; border-radius: 999px; background: var(--selo-bg); font-size: 12px; color: var(--texto-suave); }

/* Cabeçalho da página do usuário */
.perfil { display: flex; align-items: center; gap: 16px; }
.avatar-g { width: 56px; height: 56px; font-size: 18px; }
.perfil-selos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }

/* Painel lateral e modal */
.gaveta, .modal { position: fixed; inset: 0; z-index: 50; display: flex; }
.gaveta[hidden], .modal[hidden] { display: none; }
.gaveta { justify-content: flex-end; }
.gaveta-fundo { position: absolute; inset: 0; background: rgba(20, 33, 63, .38); }
.gaveta-painel { position: relative; width: 100%; max-width: 460px; height: 100%; background: var(--superficie); display: flex; flex-direction: column; box-shadow: -12px 0 40px rgba(20, 33, 63, .18); animation: entrar .18s ease-out; }
@keyframes entrar { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.gaveta-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--divisor); }
.gaveta-topo h2 { margin: 0; font-size: 18px; font-weight: 700; color: var(--titulo); }
.gaveta-corpo { flex: 1; overflow-y: auto; padding: 22px; }
.gaveta-rodape { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 22px; border-top: 1px solid var(--divisor); }
.modal { align-items: center; justify-content: center; padding: 16px; }
.modal-caixa { position: relative; width: 100%; max-width: 420px; background: var(--superficie); border-radius: var(--raio); padding: 26px; box-shadow: 0 20px 60px rgba(20, 33, 63, .25); text-align: center; }
.modal-icone { width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 50%; background: var(--erro-bg); color: var(--vermelho-txt); display: flex; align-items: center; justify-content: center; }
.modal-caixa h2 { margin: 0 0 6px; font-size: 18px; color: var(--titulo); }
.modal-caixa p { margin: 0 0 20px; font-size: 14px; color: var(--texto-suave); }
.modal-acoes { display: flex; justify-content: center; gap: 10px; }
.com-sobreposicao body { overflow: hidden; }
.aviso-flutuante { position: fixed; right: 20px; bottom: 20px; z-index: 60; max-width: 380px; padding: 12px 16px; border-radius: var(--raio-p); font-size: 14px; box-shadow: 0 10px 30px rgba(20, 33, 63, .2); }
.aviso-info { background: #1E315D; color: #fff; }
.aviso-sucesso { background: #1E6B35; color: #fff; }
.aviso-erro { background: #9C0A00; color: #fff; }

/* ------------------------------------------------------------- Telas de acesso */
body.acesso {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 48px 16px;
  background-color: var(--fundo);
  background-image: radial-gradient(var(--pontos) 1px, transparent 1px);
  background-size: 22px 22px;
}
.acesso-cartao {
  width: 100%; max-width: 440px;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio);
  box-shadow: 0 12px 40px rgba(20, 33, 66, .08);
  padding: 40px 40px 28px;
}
.acesso-logo { display: block; width: 230px; height: auto; margin: 0 auto 20px; }
.acesso-titulo { margin: 0 0 4px; font-size: 20px; font-weight: 700; color: var(--titulo); text-align: center; }
.acesso-sub { margin: 0 0 22px; font-size: 14px; color: var(--texto-suave); text-align: center; }
.acesso-link { text-align: center; margin: 16px 0 0; font-size: 14px; }
.acesso-link a { font-weight: 600; text-decoration: none; }
.acesso-link a:hover { text-decoration: underline; }
.acesso-rodape { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid var(--divisor); font-size: 13px; color: var(--texto-suave); text-align: center; }

/* ------------------------------------------------------------- Celular */
.barra-celular { display: none; }
.menu-fundo { display: none; }
@media (max-width: 900px) {
  .barra-celular {
    display: flex; align-items: center; gap: 12px;
    position: sticky; top: 0; z-index: 20;
    padding: 10px 16px; background: var(--superficie); border-bottom: 1px solid var(--borda);
  }
  .barra-celular img { width: 150px; height: auto; }
  :root[data-tema="escuro"] .barra-celular img { background: #FFFFFF; border-radius: 8px; padding: 4px 8px; }
  .menu-lateral { transform: translateX(-100%); box-shadow: none; }
  .btn-recolher { display: none; }
  .menu-aberto .menu-lateral { transform: none; box-shadow: 0 0 40px rgba(0, 0, 0, .25); }
  .menu-aberto .menu-fundo { display: block; position: fixed; inset: 0; z-index: 25; background: rgba(20, 33, 63, .35); }
  .conteudo { margin-left: 0; padding: 20px 16px 40px; min-height: auto; }
  .acesso-cartao { padding: 32px 22px 22px; }
  .cabecalho-pagina { align-items: stretch; }
  .acoes-pagina .btn { flex: 1; }
  .gaveta-painel { max-width: none; }
  .filtros-corpo .campo { max-width: none; }
  .tabela th, .tabela td { padding-inline: 14px; }
}
