/* Customizações do SLIMA sobre o AdminLTE */

:root {
  /* Paleta da marca Simões de Lima Advogados (extraída de slimaadv.com.br) */
  --slima-marinho: #232f3b;        /* cor principal */
  --slima-marinho-escuro: #1a232c;
  --slima-taupe: #86756d;
  --slima-taupe-claro: #a69989;
  --slima-bege: #ded9d1;
  --slima-off-white: #fafafa;

  /* Paleta da área de conteúdo do painel, igual ao erp_ex (Tailwind slate) */
  --slima-conteudo-bg: #f1f5f9;    /* slate-100 */
  --slima-superficie: #ffffff;     /* cabeçalho, rodapé e cards */
  --slima-borda: #e2e8f0;          /* slate-200 */
  --slima-texto: #0f172a;          /* slate-900 */
  --slima-texto-suave: #64748b;    /* slate-500 */
  --slima-sombra: 0 10px 24px rgba(15, 23, 42, 0.08);

  /* Fonte igual à do ERP_EX: a pilha padrão do Tailwind (font-sans / font-mono), ou seja, a fonte do
     sistema (Segoe UI no Windows, San Francisco no Mac, Ubuntu/Cantarell no Linux), sem nada para baixar.
     O AdminLTE e o Bootstrap leem as variáveis --bs-*, então valem para o painel e para o login. */
  --slima-fonte: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --slima-fonte-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-font-sans-serif: var(--slima-fonte);
  --bs-body-font-family: var(--slima-fonte);
  --bs-font-monospace: var(--slima-fonte-mono);
}

/* ============================================================
   Painel (lado direito). O menu lateral mantém o cinza do AdminLTE.
   ============================================================ */
/* Cores de texto e links do Bootstrap na área de conteúdo */
.app-wrapper {
  --slima-texto-corpo: #475569;  /* slate-600: texto comum */
  --bs-body-color: var(--slima-texto-corpo);
  --bs-emphasis-color: var(--slima-texto);
  --bs-secondary-color: var(--slima-texto-suave);
  --bs-border-color: var(--slima-borda);
  --bs-link-color: var(--slima-marinho);
  --bs-link-color-rgb: 35, 47, 59;
  --bs-link-hover-color: var(--slima-taupe);
  --bs-link-hover-color-rgb: 134, 117, 109;
  background-color: var(--slima-conteudo-bg);
  color: var(--slima-texto-corpo);
}

.app-main {
  background-color: var(--slima-conteudo-bg);
}

/* Cabeçalho, título da página, menu lateral e rodapé: seção "Casca" mais abaixo */

/* Cards */
.app-main .card {
  --bs-card-bg: var(--slima-superficie);
  --bs-card-color: var(--slima-texto-corpo);
  --bs-card-cap-bg: var(--slima-superficie);
  --bs-card-cap-color: var(--slima-texto);
  --bs-card-border-color: var(--slima-borda);
  border: 1px solid var(--slima-borda);
  border-radius: 0.75rem;
  box-shadow: var(--slima-sombra);
}

/* Campos em text-sm (14px), como no ERP_EX (lá quase todo input/select usa text-sm). Com 16px,
   os campos compactos de 2/12 dos Dados gerais cortavam o texto em telas de 1366px.
   Os modais entram à parte: o script os move para o <body>, fora do .app-main. */
.app-main .form-control,
.app-main .form-select,
.app-main .input-group-text,
.slima-modal .form-control,
.slima-modal .form-select,
.slima-modal .input-group-text {
  font-size: 0.875rem;
}

.app-main .card-header {
  padding: 0.9rem 1.25rem;
  border-bottom: 1px solid var(--slima-borda);
}

.app-main .card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--slima-texto);
}

.app-main .card-title > .bi {
  color: var(--slima-taupe);
}

.app-main .card-body {
  padding: 1.25rem;
}

/* Botões e destaques na cor da marca */
.app-wrapper .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--slima-marinho);
  --bs-btn-border-color: var(--slima-marinho);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--slima-marinho-escuro);
  --bs-btn-hover-border-color: var(--slima-marinho-escuro);
  --bs-btn-active-bg: var(--slima-marinho-escuro);
  --bs-btn-active-border-color: var(--slima-marinho-escuro);
  --bs-btn-focus-shadow-rgb: 166, 153, 137;
}

.app-wrapper .form-control:focus,
.app-wrapper .form-select:focus {
  border-color: var(--slima-taupe-claro);
  box-shadow: 0 0 0 0.2rem rgba(166, 153, 137, 0.3);
}

/* Formulários do painel */
.app-main .form-label {
  margin-bottom: 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155; /* slate-700 */
}

.app-main .form-control,
.app-main .form-select {
  border-color: #cbd5e1; /* slate-300 */
  color: var(--slima-texto);
}

.app-wrapper .btn-outline-secondary {
  --bs-btn-color: #334155;
  --bs-btn-border-color: #cbd5e1;
  --bs-btn-hover-color: var(--slima-texto);
  --bs-btn-hover-bg: #f1f5f9;
  --bs-btn-hover-border-color: #94a3b8;
  --bs-btn-active-bg: #e2e8f0;
  --bs-btn-active-color: var(--slima-texto);
}

.app-wrapper .btn-link {
  --bs-btn-color: var(--slima-marinho);
  --bs-btn-hover-color: var(--slima-taupe);
  text-decoration: none;
  font-weight: 500;
}

.app-main .form-check-input:checked {
  background-color: var(--slima-marinho);
  border-color: var(--slima-marinho);
}

/* Tabelas */
.slima-tabela {
  --bs-table-hover-bg: #f8fafc; /* slate-50 */
  font-size: 0.875rem;            /* text-sm, como no ERP_EX */
}

/* Espaçamento igual ao ERP_EX (px-4 py-3) */
.slima-tabela > :not(caption) > * > * {
  padding: 0.75rem 1rem;
}

.slima-tabela thead th {
  background-color: #f8fafc;
  border-bottom: 1px solid var(--slima-borda);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #475569;               /* slate-600 */
  white-space: nowrap;
  text-align: center;           /* padrão: cabeçalho centralizado; colunas de nome levam .text-start */
}

.slima-tabela td {
  border-color: #f1f5f9;
  color: #334155;
}

/* Colunas de largura fixa (definidas no <colgroup>): todas as linhas ficam alinhadas e,
   em tela estreita, a tabela rola na horizontal em vez de espremer as colunas */
.slima-tabela-fixa {
  table-layout: fixed;
  min-width: 1080px;
}

.slima-tabela-fixa td {
  overflow-wrap: anywhere;
}

.slima-tabela .slima-acoes {
  text-align: center;
  white-space: nowrap;
}

.slima-link-cnpj {
  font-variant-numeric: tabular-nums;
  color: var(--slima-marinho);
  text-decoration: none;
}

.slima-link-nome {
  color: var(--slima-texto);
  font-weight: 500;
  text-decoration: none;
}

.slima-link-cnpj:hover,
.slima-link-nome:hover {
  color: var(--slima-taupe);
  text-decoration: underline;
}

.slima-tabela .text-end,
.slima-tabela .text-center {
  font-variant-numeric: tabular-nums;
}

/* Painel de filtros recolhível (partials/filtros-cabecalho): o cabeçalho inteiro é o botão */
.app-main .slima-filtros > .card-header {
  padding: 0;
  border-bottom: 0;
}

.slima-filtros-alternar {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.9rem 1.25rem;
  border: 0;
  border-radius: inherit;
  background: none;
  font-size: 1rem;
  font-weight: 600;
  color: var(--slima-texto);
  text-align: left;
  cursor: pointer;
}

.slima-filtros-alternar > .bi-funnel {
  color: var(--slima-taupe);
}

.slima-filtros-alternar:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: -2px;
}

.slima-filtros-seta {
  color: var(--slima-texto-suave);
  transition: transform 0.2s ease;
}

.slima-filtros-alternar:not(.collapsed) .slima-filtros-seta {
  transform: rotate(180deg);
}

.slima-filtros .card-body {
  border-top: 1px solid var(--slima-borda);
}

/* Etiquetas */
.app-main .badge {
  font-weight: 600;
  font-size: 0.7rem;
  padding: 0.3em 0.55em;
  border-radius: 0.35rem;
}

.slima-badge-base   { background: #e2e8f0; color: #334155; }
.slima-badge-alerta { background: #fee2e2; color: #991b1b; }
.slima-badge-aviso  { background: #fef3c7; color: #92400e; }
.slima-badge-neutro { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.slima-badge-ok     { background: #dcfce7; color: #166534; }
.slima-badge-novo   { background: var(--slima-bege); color: var(--slima-marinho); }

/* Lista Regularize */
.slima-base-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.65rem 1rem;
  background: var(--slima-superficie);
  border: 1px solid var(--slima-borda);
  border-left: 3px solid var(--slima-taupe-claro);
  border-radius: 0.5rem;
  font-size: 0.85rem;
  color: #475569;
}

.slima-total-valor {
  font-weight: 400;
  color: var(--slima-texto-suave);
}

.slima-icone-vazio {
  color: var(--slima-taupe-claro);
}

.app-main .card-footer {
  background: var(--slima-superficie);
  border-top: 1px solid var(--slima-borda);
}

.app-main .pagination {
  --bs-pagination-color: var(--slima-marinho);
  --bs-pagination-hover-color: var(--slima-marinho);
  --bs-pagination-active-bg: var(--slima-marinho);
  --bs-pagination-active-border-color: var(--slima-marinho);
  --bs-pagination-focus-box-shadow: 0 0 0 0.2rem rgba(166, 153, 137, 0.3);
}

/* Ficha da empresa */
.slima-cnpj-grande {
  font-size: 1.05rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--slima-texto);
}

/* Fonte dos dados, à direita do título do card (trimestre da PGFN, CNPJá) */
.slima-ficha-ref {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.6rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--slima-texto-suave);
  white-space: nowrap;
}

.slima-ficha-ref > .bi {
  color: var(--slima-taupe);
}

/* Título de seção dentro do card: rótulo pequeno + filete até a borda */
.slima-ficha-secao {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 1.4rem 0 0.7rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slima-texto-suave);
}

.slima-ficha-secao > .bi {
  font-size: 0.85rem;
  color: var(--slima-taupe);
}

.slima-ficha-secao::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--slima-borda);
}

.slima-ficha-secao-qtd {
  display: inline-grid;
  place-items: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  background: #e2e8f0;
  border-radius: 999px;
  font-size: 0.68rem;
  letter-spacing: 0;
  color: #334155;
}

.slima-cad-nada {
  margin: 0;
  font-size: 0.85rem;
  color: var(--slima-texto-suave);
}

/* Etiqueta com ícone (situações da dívida) */
.app-main .slima-badge-icone {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.35em 0.65em;
  font-size: 0.72rem;
}

/* Etiqueta clara (enquadramento da empresa, receitas) */
.slima-etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.6rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 500;
  color: #334155;
}

.slima-etiqueta > .bi {
  color: var(--slima-taupe);
}

.slima-etiqueta-texto {
  border-radius: 0.4rem;
  font-weight: 400;
  line-height: 1.35;
}

/* --- Dívida ativa (PGFN) --- */
.slima-divida-destaque {
  padding: 1.1rem 1.25rem;
  background: linear-gradient(135deg, var(--slima-marinho) 0%, #34475a 100%);
  border-radius: 0.75rem;
  color: #fff;
  box-shadow: 0 8px 20px rgba(35, 47, 59, 0.22);
}

.slima-divida-destaque-rotulo {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slima-bege);
}

.slima-divida-destaque-valor {
  margin-top: 0.15rem;
  font-size: 1.95rem;
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.slima-divida-destaque-rodape {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.6rem;
  margin-top: 0.6rem;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.72);
}

.slima-variacao {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Dívida que cresceu é ruim para a empresa: vermelho; que caiu: verde */
.slima-variacao-alta  { background: rgba(248, 113, 113, 0.2); color: #fecaca; }
.slima-variacao-baixa { background: rgba(74, 222, 128, 0.18); color: #bbf7d0; }
.slima-variacao-igual { background: rgba(255, 255, 255, 0.14); color: #fff; }

/* Etiquetas de situação dentro do destaque escuro */
.slima-divida-situacoes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

/* Faixa com os números principais (botões: clicar filtra as inscrições) */
.slima-faixa {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--slima-borda);
  border-radius: 0.65rem;
}

.slima-faixa-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.7rem 0.85rem;
  background: #fff;
  border: 0;
  border-right: 1px solid var(--slima-borda);
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.slima-faixa-item:last-child {
  border-right: 0;
}

/* Filete embaixo: aparece no hover e fica no número que está filtrando a tabela */
.slima-faixa-item::after {
  content: '';
  position: absolute;
  left: 0.85rem;
  right: 0.85rem;
  bottom: 0;
  height: 2px;
  background: var(--slima-marinho);
  border-radius: 2px 2px 0 0;
  transform: scaleX(0);
  transition: transform 0.2s ease;
}

.slima-faixa-item:not(:disabled):hover {
  background: #f8fafc;
}

.slima-faixa-item:not(:disabled):hover::after {
  transform: scaleX(0.4);
}

.slima-faixa-item.ativo {
  background: #f1f5f9;
}

.slima-faixa-item.ativo::after {
  transform: scaleX(1);
}

.slima-faixa-item:focus-visible {
  z-index: 1;
  outline: 2px solid var(--slima-marinho);
  outline-offset: -2px;
}

.slima-faixa-item:disabled {
  cursor: default;
}

.slima-faixa-valor {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--slima-texto);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.slima-faixa-alerta .slima-faixa-valor {
  color: #b91c1c;
}

.slima-faixa-alerta::after {
  background: #b91c1c;
}

.slima-faixa-sub {
  font-size: 0.72rem;
  color: var(--slima-texto-suave);
}

/* Texto à direita no título de seção (depois do filete) */
.slima-ficha-secao-extra {
  order: 2;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--slima-texto-suave);
}

.slima-ficha-secao::after {
  order: 1;
}

/* Barra empilhada com a composição por natureza */
.slima-composicao-barra {
  display: flex;
  gap: 2px;
  height: 0.7rem;
  overflow: hidden;
  background: #e2e8f0;
  border-radius: 999px;
  animation: slima-barra-entrar 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes slima-barra-entrar {
  from { clip-path: inset(0 100% 0 0 round 999px); }
  to   { clip-path: inset(0 0 0 0 round 999px); }
}

.slima-composicao-barra > span {
  min-width: 3px;
  transition: opacity 0.2s ease;
}

.slima-composicao-sida { background: var(--slima-marinho); }
.slima-composicao-prev { background: var(--slima-taupe); }
.slima-composicao-fgts { background: #c8bdb0; }

/* Legenda: um bloco por natureza, lado a lado (botões: passar o mouse destaca, clicar filtra) */
.slima-composicao-legenda {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
}

.slima-composicao-legenda > li {
  min-width: 0;
}

.slima-natureza {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  width: 100%;
  height: 100%;
  padding: 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid var(--slima-borda);
  border-radius: 0.55rem;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.2s ease;
}

.slima-natureza:not(:disabled):hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}

.slima-natureza.ativo {
  background: #f8fafc;
  border-color: var(--slima-marinho);
  box-shadow: inset 0 0 0 1px var(--slima-marinho);
}

.slima-natureza:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: 1px;
}

.slima-natureza:disabled {
  cursor: default;
}

.slima-composicao-legenda .apagado,
.slima-composicao-barra .apagado {
  opacity: 0.3;
}

.slima-natureza-topo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  min-width: 0;
  font-size: 0.78rem;
}

.slima-composicao-ponto {
  flex: 0 0 auto;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
}

.slima-composicao-rotulo {
  overflow: hidden;
  color: #334155;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slima-composicao-valor {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--slima-texto);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.slima-composicao-pct {
  font-size: 0.72rem;
  color: var(--slima-texto-suave);
  font-variant-numeric: tabular-nums;
}

.slima-natureza-seta {
  margin-left: auto;
  font-size: 0.7rem;
  color: var(--slima-texto-suave);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.slima-natureza:not(:disabled):hover .slima-natureza-seta,
.slima-natureza.ativo .slima-natureza-seta {
  opacity: 1;
  transform: none;
}

.slima-composicao-zero > * {
  opacity: 0.5;
}

/* --- Cadastro e contato (CNPJá) --- */
.slima-cad-vazio {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 2.5rem 0;
  color: var(--slima-texto-suave);
}

.slima-cad-vazio > .bi {
  font-size: 1.4rem;
  color: var(--slima-taupe-claro);
}

/* Situação cadastral: pílula com ponto colorido */
.slima-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.slima-status-ponto {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: currentColor;
}

.slima-status-ok     { background: #dcfce7; color: #166534; }
.slima-status-alerta { background: #fee2e2; color: #991b1b; }
.slima-status-neutro { background: #f1f5f9; color: #475569; }

.slima-status-ok .slima-status-ponto {
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.15);
}

.slima-cad-aviso {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.6rem;
  padding: 0.5rem 0.75rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 0.5rem;
  font-size: 0.82rem;
  color: #991b1b;
}

/* Telefones, e-mails e endereço: um bloco por item, com as ações à direita */
.slima-contatos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 0.6rem;
}

.slima-contato {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.55rem 0.6rem 0.55rem 0.65rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 0.6rem;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.slima-contato:hover {
  background: #fff;
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.slima-contato-icone {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  background: var(--slima-marinho);
  border-radius: 0.5rem;
  color: var(--slima-bege);
  font-size: 0.95rem;
}

.slima-contato-valor {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slima-texto);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.slima-contato-valor:hover {
  color: var(--slima-taupe);
  text-decoration: underline;
}

.slima-contato-texto {
  flex: 1;
  min-width: 0;
  font-size: 0.875rem;
}

.slima-contato-linha1 {
  font-weight: 500;
  color: var(--slima-texto);
  overflow-wrap: anywhere;
}

.slima-contato-linha2 {
  font-size: 0.8rem;
  color: var(--slima-texto-suave);
  font-variant-numeric: tabular-nums;
}

.slima-contato-acoes {
  flex: 0 0 auto;
  display: flex;
  gap: 0.15rem;
}

.slima-contato-acao {
  display: inline-grid;
  place-items: center;
  width: 1.9rem;
  height: 1.9rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0.45rem;
  color: var(--slima-texto-suave);
  font-size: 0.9rem;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.slima-contato-acao:hover,
.slima-contato-acao:focus-visible {
  background: #e2e8f0;
  color: var(--slima-marinho);
}

.slima-contato-acao:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: 1px;
}

.slima-contato-whatsapp:hover,
.slima-contato-whatsapp:focus-visible {
  background: #dcfce7;
  color: #15803d;
}

/* Dados da empresa: rótulo em cima, valor embaixo, em duas colunas */
.slima-cad-dados {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem 1.5rem;
}

.slima-cad-dado {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  font-size: 0.9rem;
}

.slima-cad-dado-largo {
  grid-column: 1 / -1;
}

.slima-cad-sub {
  margin-left: 0.35rem;
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--slima-texto-suave);
}

/* Quadro societário */
.slima-socios {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.slima-socio {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--slima-borda);
  border-radius: 0.6rem;
}

.slima-socio-avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  background: var(--slima-bege);
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--slima-marinho);
}

.slima-socio-texto {
  min-width: 0;
}

.slima-socio-nome {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slima-texto);
  overflow-wrap: anywhere;
}

.slima-socio-info {
  font-size: 0.75rem;
  color: var(--slima-texto-suave);
}

/* Abas do cadastro em formato de controle segmentado */
.app-main .slima-segmento {
  flex-wrap: nowrap;
  gap: 0.25rem;
  margin: 1.1rem 0 1rem;
  padding: 0.25rem;
  background: #f1f5f9;
  border: 1px solid var(--slima-borda);
  border-radius: 0.7rem;
}

.app-main .slima-segmento .nav-link {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-width: 0;
  padding: 0.45rem 0.6rem;
  background: transparent;
  border: 0;
  border-radius: 0.5rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: #475569;
  white-space: nowrap;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.app-main .slima-segmento .nav-link > .bi {
  color: var(--slima-taupe);
}

.app-main .slima-segmento .nav-link:hover {
  color: var(--slima-texto);
}

.app-main .slima-segmento .nav-link.active {
  background: #fff;
  color: var(--slima-texto);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), 0 1px 2px rgba(15, 23, 42, 0.06);
}

.app-main .slima-segmento .nav-link:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: 1px;
}

.slima-segmento-qtd {
  display: inline-grid;
  place-items: center;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  background: #e2e8f0;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 600;
  color: #334155;
}

.nav-link.active .slima-segmento-qtd {
  background: var(--slima-marinho);
  color: #fff;
}

/* Filtros rápidos da tabela de inscrições */
.slima-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.slima-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.4rem 0.3rem 0.7rem;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 500;
  color: #334155;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.slima-chip:hover {
  background: #f8fafc;
  border-color: #94a3b8;
}

.slima-chip:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: 1px;
}

.slima-chip.ativo {
  background: var(--slima-marinho);
  border-color: var(--slima-marinho);
  color: #fff;
}

.slima-chip-qtd {
  display: inline-grid;
  place-items: center;
  min-width: 1.3rem;
  height: 1.3rem;
  padding: 0 0.35rem;
  background: #f1f5f9;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 600;
  color: #475569;
}

.slima-chip.ativo .slima-chip-qtd {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}

/* Cabeçalho ordenável (Inscrita em, Valor) */
.slima-ordenar {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  cursor: pointer;
}

.slima-ordenar > .bi {
  font-size: 0.8rem;
  color: #94a3b8;
  transition: color 0.15s ease;
}

.slima-ordenar:hover > .bi,
.slima-ordenar.ativo > .bi {
  color: var(--slima-marinho);
}

.slima-ordenar:focus-visible {
  outline: 2px solid var(--slima-marinho);
  outline-offset: 2px;
  border-radius: 0.2rem;
}

.slima-inscricoes-rodape {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: var(--slima-texto-suave);
  font-variant-numeric: tabular-nums;
}

/* Linhas que voltam a aparecer ao trocar o filtro entram suavemente */
[data-inscricoes] tbody tr:not([hidden]) {
  animation: slima-linha-entrar 0.25s ease both;
}

@keyframes slima-linha-entrar {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Card das inscrições pisca de leve quando um número do card da dívida o filtra */
.slima-piscar {
  animation: slima-piscar 1.1s ease;
}

@keyframes slima-piscar {
  0%   { box-shadow: var(--slima-sombra), 0 0 0 0 rgba(134, 117, 109, 0.45); }
  35%  { box-shadow: var(--slima-sombra), 0 0 0 6px rgba(134, 117, 109, 0.25); }
  100% { box-shadow: var(--slima-sombra), 0 0 0 0 rgba(134, 117, 109, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .slima-composicao-barra,
  [data-inscricoes] tbody tr,
  .slima-piscar {
    animation: none;
  }
}

@media (max-width: 575.98px) {
  .slima-cad-dados {
    grid-template-columns: 1fr;
  }
  .slima-divida-destaque-valor {
    font-size: 1.6rem;
  }
  /* Faixa vira lista: rótulo e detalhe à esquerda, valor à direita */
  .slima-faixa {
    grid-template-columns: 1fr;
  }
  .slima-faixa-item {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 0.75rem;
    padding: 0.55rem 0.8rem;
    border-right: 0;
    border-bottom: 1px solid var(--slima-borda);
  }
  .slima-faixa-item:last-child {
    border-bottom: 0;
  }
  .slima-faixa-item .slima-faixa-valor {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .slima-faixa-item::after {
    left: 0;
    right: auto;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    height: auto;
    transform: scaleY(0);
  }
  .slima-faixa-item.ativo::after {
    transform: scaleY(1);
  }
  .slima-faixa-item:not(:disabled):hover::after {
    transform: scaleY(0.5);
  }
  .slima-ficha-secao-extra {
    display: none;
  }
  /* Legenda em lista: ponto e nome | valor | % */
  .slima-composicao-legenda {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
  .slima-natureza {
    flex-direction: row;
    align-items: center;
    gap: 0.6rem;
  }
  .slima-natureza-topo {
    flex: 1;
    font-size: 0.85rem;
  }
  .slima-composicao-pct {
    min-width: 2.8rem;
    text-align: right;
  }
  /* Abas mais compactas, para as três caberem lado a lado */
  .app-main .slima-segmento .nav-link {
    font-size: 0.78rem;
    padding: 0.45rem 0.4rem;
  }
}

/* ============================================================
   Jurídico > Processos
   ============================================================ */
.slima-alerta-ok   { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.slima-alerta-aviso { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.slima-alerta-erro { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; font-size: 0.875rem; }

/* Filtro automático: lista fica esmaecida enquanto carrega */
.slima-filtro-alvo {
  transition: opacity 0.2s ease;
}

.slima-carregando {
  opacity: 0.55;
  pointer-events: none;
}

/* Botão só com ícone (ações da tabela), quadrado como no ERP_EX */
.slima-btn-icone {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-border-radius: 0.5rem;
  display: inline-grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  font-size: 1rem;
}

/* Input-group com ícone (lista e modal) */
.slima-input-icone .input-group-text {
  min-width: 2.6rem;
  justify-content: center;
  background-color: #f8fafc;
  border-color: #cbd5e1;
  color: var(--slima-taupe);
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.slima-input-icone:focus-within .input-group-text {
  background-color: #fff;
  border-color: var(--slima-taupe-claro);
  color: var(--slima-marinho);
}

.slima-input-icone:has(.is-invalid) .input-group-text {
  border-color: var(--bs-form-invalid-border-color);
  color: #dc2626;
}

.slima-input-textarea .input-group-text {
  align-items: flex-start;
  padding-top: 0.55rem;
}

.slima-prefixo {
  font-size: 0.8rem;
  font-weight: 600;
}

.slima-mono {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

/* Modal */
.slima-modal {
  --bs-modal-border-radius: 1rem;
  --bs-modal-header-padding: 1.15rem 1.5rem;
  --bs-modal-padding: 1.5rem;
  --bs-modal-footer-gap: 0.5rem;
  --bs-body-color: #475569;
  --bs-border-color: var(--slima-borda);
  color: #475569;
}

.slima-modal .modal-content {
  border: 0;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.slima-modal .modal-header {
  gap: 0.9rem;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  border-bottom: 1px solid var(--slima-borda);
}

.slima-modal-icone {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  background: var(--slima-marinho);
  color: var(--slima-bege);
  font-size: 1.25rem;
  box-shadow: 0 6px 16px rgba(35, 47, 59, 0.25);
}

.slima-modal .modal-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--slima-texto);
}

.slima-modal-subtitulo {
  font-size: 0.8rem;
  color: var(--slima-texto-suave);
}

.slima-obrigatorio {
  color: #dc2626;
  font-weight: 600;
}

.slima-modal .modal-body {
  background: #fff;
}

.slima-secao {
  margin-bottom: 1.5rem;
}

.slima-secao + .slima-secao {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px dashed var(--slima-borda);
}

.slima-secao:last-child {
  margin-bottom: 0;
}

/* Campo travado na edição (não muda depois do cadastro) */
.slima-form .slima-travado,
.slima-form .slima-travado:focus {
  background-color: #f8fafc;
  color: var(--slima-texto);
  cursor: default;
}

.slima-cadeado {
  margin-left: 0.3rem;
  font-size: 0.7rem;
  color: var(--slima-texto-suave);
}

/* Cadastro de cliente: CPF/CNPJ que já é cliente (aviso com o link para abrir) */
.slima-ja-cliente {
  color: #92400e;
}

.slima-ja-cliente a {
  color: inherit;
}

.slima-secao-titulo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slima-marinho);
}

.slima-secao-titulo .bi {
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 0.45rem;
  background: #f1f5f9;
  color: var(--slima-taupe);
  font-size: 0.85rem;
}

.slima-form .form-label {
  margin-bottom: 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #334155;
}

.slima-form .form-control,
.slima-form .form-select {
  border-color: #cbd5e1;
  color: var(--slima-texto);
}

.slima-form .form-control::placeholder {
  color: #94a3b8;
}

.slima-form .form-control:focus,
.slima-form .form-select:focus {
  border-color: var(--slima-taupe-claro);
  box-shadow: 0 0 0 0.2rem rgba(166, 153, 137, 0.25);
}

.slima-form .form-control.is-invalid:focus,
.slima-form .form-select.is-invalid:focus {
  border-color: var(--bs-form-invalid-border-color);
}

.slima-modal .modal-footer {
  background: #f8fafc;
  border-top: 1px solid var(--slima-borda);
}

.slima-modal .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--slima-marinho);
  --bs-btn-border-color: var(--slima-marinho);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--slima-marinho-escuro);
  --bs-btn-hover-border-color: var(--slima-marinho-escuro);
  --bs-btn-active-bg: var(--slima-marinho-escuro);
  --bs-btn-disabled-bg: var(--slima-marinho);
  --bs-btn-disabled-border-color: var(--slima-marinho);
  --bs-btn-focus-shadow-rgb: 166, 153, 137;
}

.slima-modal .btn-outline-secondary {
  --bs-btn-color: #334155;
  --bs-btn-border-color: #cbd5e1;
  --bs-btn-hover-color: var(--slima-texto);
  --bs-btn-hover-bg: #f1f5f9;
  --bs-btn-hover-border-color: #94a3b8;
  --bs-btn-active-bg: #e2e8f0;
  --bs-btn-active-color: var(--slima-texto);
}

/* Modal largo: 4 colunas iguais sem cortar o texto (até 1320px, deixando uma margem na tela) */
@media (min-width: 1200px) {
  .slima-modal .modal-xl {
    --bs-modal-width: min(1320px, calc(100vw - 3rem));
  }
}

.slima-modal .modal-body {
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
}

.slima-modal .slima-secao {
  margin-bottom: 0.9rem;
}

.slima-modal .slima-secao + .slima-secao {
  padding-top: 0.85rem;
}

.slima-modal .slima-secao-titulo {
  margin-bottom: 0.65rem;
}

.slima-form .slima-autoaltura {
  resize: none;
  min-height: calc(1.5em + 0.75rem + 2px);
}

/* Selo "DataJud" (aba Movimentações do processo) */
.slima-datajud-selo {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.1rem 0.5rem;
  background: var(--slima-marinho);
  border-radius: 999px;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* Buscando (CNPJ na Receita): só um ícone girando dentro do campo */
.slima-form .slima-buscando {
  min-width: 2.4rem;
  background-color: #fff;
  border-left: 0;
  color: var(--slima-taupe);
}

.slima-form .slima-buscando .spinner-border {
  width: 0.9rem;
  height: 0.9rem;
  border-width: 0.15em;
}

.modal-backdrop.show {
  opacity: 0.55;
  background-color: var(--slima-marinho-escuro);
}

@media (max-width: 575.98px) {
  .slima-modal {
    --bs-modal-padding: 1rem;
    --bs-modal-header-padding: 1rem;
  }
}

/* ============================================================
   Casca, no formato do painel do ERP_EX (frontend/src/layout/AppShell.tsx), na cor da marca.
   Menu lateral fixo de 228px com 10px de respiro, logo centralizada no topo, busca com o caminho do item, grupos com moldura quando a tela aberta está dentro, itens de 13px com
   ícones de 16px. Cabeçalho branco fino com o botão do usuário; rodapé fino. As medidas e os cinzas (slate)
   são os das classes Tailwind do ERP_EX; o dourado de lá virou o taupe-claro da marca.
   Estado: html.slima-menu-aberto (celular, por cima do conteúdo). Marcação: partials/sidebar.ejs e header.ejs.
   O AdminLTE fica só pelo CSS dos componentes: o .app-wrapper deixa de ser a grade dele.
   ============================================================ */
:root {
  --slima-menu-largura: 228px;
}

.app-wrapper.slima-shell {
  display: block;
  max-width: none;
  min-height: 100vh;
}

.slima-principal {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100vh;
  margin-left: var(--slima-menu-largura);
}

.slima-shell .app-main {
  flex: 1 0 auto;
  max-width: none;
  padding-bottom: 0;
}

/* Só anima depois da primeira pintura */
html.slima-pronto .slima-menu { transition: transform 0.3s ease; }

/* ---------------- Menu lateral ---------------- */
.slima-menu {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  width: var(--slima-menu-largura);
  padding: 10px;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--slima-marinho);
  color: #f1f5f9;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.slima-menu::-webkit-scrollbar { width: 6px; }
.slima-menu::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.18); border-radius: 999px; }

/* Topo: a logo (e o botão de fechar, só no celular) */
.slima-menu-topo {
  flex: 0 0 auto;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.slima-menu-topo-linha {
  display: none;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: 8px;
}

.slima-menu-botao {
  display: inline-grid;
  place-items: center;
  padding: 6px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #e2e8f0;
  font-size: 20px;
  line-height: 1;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.slima-menu-botao:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.slima-menu-botao:focus-visible { outline: 2px solid var(--slima-taupe-claro); outline-offset: 0; }

.slima-menu-logo-area {
  display: flex;
  justify-content: center;
  margin-top: 8px;
}

.slima-menu-logo {
  display: inline-flex;
  padding: 4px;
  border-radius: 6px;
  transition: background-color 0.15s ease;
}

.slima-menu-logo:hover { background: rgba(255, 255, 255, 0.05); }
.slima-menu-logo:focus-visible { outline: 2px solid rgba(166, 153, 137, 0.8); outline-offset: 0; }

/* A logo do escritório é vertical (monograma sobre o nome): 76px de altura para o nome ficar legível
   (no ERP_EX a logo é larga e fica com 48px) */
.slima-menu-logo-cheia {
  height: 76px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  filter: drop-shadow(0 1px 4px rgba(166, 153, 137, 0.18));
}

/* Busca */
.slima-menu-busca {
  position: relative;
  flex: 0 0 auto;
  margin-bottom: 12px;
}

.slima-menu-busca > .bi-search {
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
  font-size: 14px;
  color: #94a3b8;
  pointer-events: none;
}

.slima-menu-busca-campo {
  width: 100%;
  padding: 6px 28px 6px 32px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  color: #f1f5f9;
  font: inherit;
  font-size: 12px;
  line-height: 1.35;
  outline: 0;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.slima-menu-busca-campo::placeholder { color: #94a3b8; }
.slima-menu-busca-campo:focus { border-color: var(--slima-taupe-claro); background: rgba(255, 255, 255, 0.1); }

.slima-menu-busca-limpar {
  position: absolute;
  top: 50%;
  right: 6px;
  display: inline-grid;
  place-items: center;
  padding: 2px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #94a3b8;
  font-size: 14px;
  line-height: 1;
  transform: translateY(-50%);
  transition: background-color 0.15s ease, color 0.15s ease;
}

.slima-menu-busca-limpar:hover { background: rgba(255, 255, 255, 0.1); color: #f1f5f9; }
.slima-menu-busca-limpar[hidden] { display: none; }

/* Itens */
.slima-menu-nav,
.slima-menu-arvore,
.slima-menu-resultados {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.slima-menu-nav {
  flex: 1 1 auto;
  min-height: 0;
}

.slima-menu-arvore[hidden],
.slima-menu-resultados[hidden],
.slima-menu-vazio[hidden] { display: none; }

.slima-menu-vazio {
  margin: 0;
  padding: 12px 8px;
  text-align: center;
  font-size: 12px;
  color: #94a3b8;
}

.slima-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 6px 12px;
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.slima-menu-item:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.slima-menu-item.active { background: rgba(255, 255, 255, 0.15); color: #fff; }

.slima-menu-item > .bi,
.slima-menu-grupo-botao .bi {
  flex: 0 0 auto;
  width: 16px;
  font-size: 16px;
  line-height: 1;
  text-align: center;
}

.slima-menu-item > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.slima-menu-item-texto { display: flex; flex-direction: column; }
.slima-menu-item-rotulo,
.slima-menu-item-pai { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.slima-menu-item-pai { font-size: 10px; font-weight: 400; color: #94a3b8; }

.slima-menu-item:focus-visible,
.slima-menu-grupo-botao:focus-visible { outline: 2px solid var(--slima-taupe-claro); outline-offset: -2px; }

/* Grupo (Comercial, Jurídico, RH): moldura quando a tela aberta está dentro dele */
.slima-menu-grupo {
  padding: 4px;
  border: 1px solid transparent;
  border-radius: 8px;
}

.slima-menu-grupo-ativo {
  border-color: var(--slima-taupe-claro);
  background: rgba(255, 255, 255, 0.05);
}

.slima-menu-grupo-botao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  padding: 6px 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #f1f5f9;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  text-align: left;
  transition: background-color 0.15s ease;
}

.slima-menu-grupo-botao:hover { background: rgba(255, 255, 255, 0.1); }
.slima-menu-grupo-botao > span { display: flex; align-items: center; gap: 8px; min-width: 0; }
.slima-menu-grupo-botao > span > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.slima-menu-grupo-seta {
  color: #cbd5e1;
  transition: transform 0.15s ease;
}

.slima-menu-grupo.aberto > .slima-menu-grupo-botao .slima-menu-grupo-seta { transform: rotate(90deg); }

.slima-menu-sub {
  display: none;
  flex-direction: column;
  gap: 4px;
  margin: 4px 0 0 4px;
  padding-left: 6px;
  border-left: 1px solid var(--slima-taupe-claro);
}

.slima-menu-grupo.aberto > .slima-menu-sub { display: flex; }

/* Fundo escuro atrás do menu no celular */
.slima-menu-fundo {
  position: fixed;
  inset: 0;
  z-index: 1039;
  display: none;
  background: rgba(0, 0, 0, 0.5);
}

/* Celular e tablet (abaixo de 1024px, o "lg" do ERP_EX): menu escondido, abre por cima do conteúdo */
@media (max-width: 1023.98px) {
  .slima-principal { margin-left: 0; }

  .slima-menu {
    z-index: 1050;
    width: 288px;
    max-width: 80vw;
    padding: 20px;
    transform: translateX(-100%);
  }

  html.slima-menu-aberto .slima-menu { transform: none; }
  html.slima-menu-aberto .slima-menu-fundo { display: block; z-index: 1049; }
  html.slima-menu-aberto body { overflow: hidden; }
  .slima-menu-topo-linha { display: flex; }
}

/* ---------------- Cabeçalho ---------------- */
.slima-topo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding: 12px 24px;
  background: #fff;
  border-bottom: 1px solid #e2e8f0;
}

.slima-topo-espaco { flex: 1 1 auto; }

.slima-topo-menu {
  display: none;
  place-items: center;
  padding: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: transparent;
  color: #334155;
  font-size: 20px;
  line-height: 1;
  transition: background-color 0.15s ease;
}

.slima-topo-menu:hover { background: #f8fafc; }

/* Botão do usuário em pílula e o menu dele */
.slima-usuario-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 4px 10px 4px 4px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.slima-usuario-pill:hover,
.slima-usuario-pill[aria-expanded="true"] { border-color: #94a3b8; background: #f8fafc; }
.slima-usuario-pill:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: 2px; }

.slima-topo .slima-usuario-pill .slima-avatar.slima-avatar-cabecalho {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  margin: 0;
  border: 1px solid #e2e8f0;
  font-size: 0.8rem;
}

/* Nome e, embaixo, o cargo */
.slima-usuario-pill-texto {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 220px;
  text-align: left;
}

.slima-usuario-pill-nome,
.slima-usuario-pill-cargo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.slima-usuario-pill-nome { font-size: 13px; font-weight: 600; color: #1e293b; }
.slima-usuario-pill-cargo { font-size: 11px; font-weight: 500; color: #64748b; }

@media (max-width: 575.98px) {
  .slima-usuario-pill-texto { display: none; }
}

.slima-usuario-pill > .bi-chevron-down {
  font-size: 14px;
  color: #64748b;
  transition: transform 0.15s ease;
}

.slima-usuario-pill[aria-expanded="true"] > .bi-chevron-down { transform: rotate(180deg); }

.slima-usuario-menu {
  --bs-dropdown-spacer: 8px;
  min-width: 224px;
  padding: 6px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.slima-usuario-menu-topo {
  margin-bottom: 4px;
  padding: 8px 12px;
  border-bottom: 1px solid #f1f5f9;
}

.slima-usuario-menu-nome,
.slima-usuario-menu-cargo,
.slima-usuario-menu-email {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slima-usuario-menu-nome { font-size: 14px; font-weight: 600; color: #1e293b; }
.slima-usuario-menu-cargo { font-size: 12px; font-weight: 500; color: #475569; }
.slima-usuario-menu-email { font-size: 11px; color: #64748b; }

/* Sino das notificações (como o NotificationsBell do ERP_EX) */
.slima-notif-botao {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 17px;
  transition: background-color 0.15s ease;
}

.slima-notif-botao:hover,
.slima-notif-botao[aria-expanded="true"] { background: #f8fafc; }
.slima-notif-botao:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: 2px; }

.slima-notif-numero {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

.slima-notif-menu {
  --bs-dropdown-spacer: 8px;
  width: 340px;
  max-width: calc(100vw - 24px);
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.slima-notif-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
}

.slima-notif-topo { border-bottom: 1px solid #e2e8f0; }
.slima-notif-titulo { margin: 0; font-size: 14px; font-weight: 600; color: #1e293b; }

.slima-notif-acao {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 4px;
  border: 0;
  border-radius: 4px;
  background: none;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
}

.slima-notif-acao:hover { color: #1e293b; background: #f1f5f9; }

/* Marcar todas e apagar as lidas: só o ícone, lado a lado no topo */
.slima-notif-acoes { display: flex; gap: 2px; }
.slima-notif-acoes .slima-notif-acao { justify-content: center; width: 28px; height: 28px; padding: 0; font-size: 15px; }

.slima-notif-lista { max-height: 384px; overflow-y: auto; }

.slima-notif-vazio {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 24px 16px;
  font-size: 12px;
  color: #64748b;
  text-align: center;
}

.slima-notif-vazio > .bi { font-size: 22px; color: #cbd5e1; }

.slima-notif-item {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid #f1f5f9;
  transition: background-color 0.15s ease;
}

.slima-notif-item:last-child { border-bottom: 0; }
.slima-notif-item:hover { background: #f8fafc; }
.slima-notif-nova { background: #fffbeb; }
.slima-notif-nova:hover { background: #fef3c7; }

.slima-notif-corpo {
  display: flex;
  flex: 1 1 auto;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 10px 4px 10px 12px;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
  text-decoration: none;
}

.slima-notif-corpo:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: -2px; }

.slima-notif-ponto {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border-radius: 999px;
  background: #cbd5e1;
}

.slima-notif-nova .slima-notif-ponto { background: #f59e0b; }

.slima-notif-textos { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.slima-notif-item-titulo { font-size: 12px; font-weight: 600; color: #1e293b; }
.slima-notif-item-msg {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  color: #475569;
}
.slima-notif-item-quando { font-size: 10px; color: #94a3b8; }

.slima-notif-apagar {
  flex: 0 0 auto;
  margin: 8px 8px 0 0;
  padding: 2px 4px;
  border: 0;
  border-radius: 4px;
  background: none;
  font-size: 11px;
  color: #cbd5e1;
  opacity: 0;
  transition: opacity 0.15s ease, color 0.15s ease;
}

.slima-notif-item:hover .slima-notif-apagar,
.slima-notif-apagar:focus-visible { opacity: 1; }
.slima-notif-apagar:hover { color: #dc2626; }

@media (hover: none) {
  .slima-notif-apagar { opacity: 1; }
}

.slima-usuario-menu .dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 14px;
  color: #334155;
  transition: background-color 0.15s ease;
}

.slima-usuario-menu .dropdown-item:hover,
.slima-usuario-menu .dropdown-item:focus { background: #f1f5f9; color: #334155; }
.slima-usuario-menu .dropdown-item > .bi { font-size: 16px; color: #64748b; }

/* "Voltar ao admin" (entrou como outro usuário): pílula âmbar logo abaixo do cabeçalho, como no ERP_EX */
.slima-entrou-como { margin: -4px 0 8px; padding: 0 24px; }

.slima-entrou-como-botao {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 10px;
  border: 1px solid #fcd34d;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  transition: background-color 0.15s ease;
}

.slima-entrou-como-botao:hover { background: #fef3c7; }
.slima-entrou-como-botao:focus-visible { outline: 2px solid #f59e0b; outline-offset: 1px; }

.slima-entrou-como-ponto {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #f59e0b;
  animation: slima-pulsar 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes slima-pulsar { 50% { opacity: 0.4; } }

@media (prefers-reduced-motion: reduce) {
  .slima-entrou-como-ponto { animation: none; }
}

/* Botão "Entrar como" na lista de usuários (âmbar, como no ERP_EX) */
.slima-btn-entrar-como { border-color: #fcd34d; background: #fffbeb; color: #b45309; }
.slima-btn-entrar-como:hover,
.slima-btn-entrar-como:focus-visible { border-color: #fbbf24; background: #fef3c7; color: #92400e; }

/* ---------------- Cabeçalho da página (como nas páginas do ERP_EX) ---------------- */
.slima-shell .app-content-header {
  margin-bottom: 20px;
  padding: 0 24px;
}

.slima-pagina-topo {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.slima-pagina-titulo-area {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.slima-pagina-titulo-linha {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.slima-pagina-titulo {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 2rem;
  color: #0f172a;
}

.slima-pagina-descricao {
  margin: 0;
  font-size: 14px;
  color: #64748b;
}

.slima-pagina-topo > .btn { align-self: flex-start; }

.slima-shell .app-content { padding: 0 24px 24px; }

@media (min-width: 768px) {
  .slima-pagina-topo { flex-direction: row; align-items: flex-start; justify-content: space-between; }
}

@media (max-width: 1023.98px) {
  .slima-topo-menu { display: inline-grid; }
}

@media (max-width: 639.98px) {
  .slima-topo { padding: 12px; }
  .slima-entrou-como { padding: 0 12px; }
  .slima-shell .app-content-header { padding: 0 12px; }
  .slima-shell .app-content { padding: 0 12px 16px; }
}

/* ---------------- Rodapé ---------------- */
.slima-shell .app-footer {
  padding: 8px 24px;
  background: #fff;
  border-top: 1px solid #e2e8f0;
  text-align: center;
  font-size: 12px;
  color: #64748b;
}

.slima-shell .app-footer strong { font-weight: 400; }

/* ============================================================
   Tela de login
   ============================================================ */
body.slima-login {
  margin: 0;
  min-height: 100vh;
  background-color: var(--slima-off-white);
  font-family: var(--slima-fonte);
  color: var(--slima-marinho);
}

.login-split {
  display: flex;
  min-height: 100vh;
}

/* Painel da marca */
.login-marca {
  position: relative;
  flex: 0 0 46%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(166, 153, 137, 0.16), transparent 60%),
    linear-gradient(160deg, var(--slima-marinho) 0%, var(--slima-marinho-escuro) 100%);
  color: var(--slima-bege);
}

/* Monograma gigante como marca d'água */
.login-marca::before {
  content: "";
  position: absolute;
  right: -12%;
  bottom: -18%;
  width: 70%;
  aspect-ratio: 595 / 842;
  background: url("/img/marca/monograma-marca-dagua.png") no-repeat center / contain;
  opacity: 0.08;
  pointer-events: none;
}

.login-marca-conteudo {
  position: relative;
  max-width: 380px;
  text-align: center;
}

.login-marca-logo {
  width: min(300px, 100%);
  height: auto;
}

.login-marca-divisor {
  display: block;
  width: 56px;
  height: 1px;
  margin: 2.25rem auto 1.75rem;
  background-color: var(--slima-taupe-claro);
}

.login-marca-slogan {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 300;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--slima-bege);
}

.login-marca-rodape {
  position: absolute;
  bottom: 1.5rem;
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--slima-taupe-claro);
}

/* Área do formulário */
.login-form-area {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}

.login-form-box {
  width: 100%;
  max-width: 400px;
}

.login-logo-mobile {
  display: none;
  width: 190px;
  height: auto;
  margin: 0 auto 2.5rem;
}

.login-eyebrow {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--slima-taupe);
}

.login-titulo {
  margin: 0 0 1.75rem;
  font-size: 1.85rem;
  font-weight: 500;
  color: var(--slima-marinho);
}

/* Campos */
.slima-login .input-group-text {
  background-color: #fff;
  border-color: var(--slima-bege);
  color: var(--slima-taupe);
}

.slima-login .form-control {
  border-color: var(--slima-bege);
  color: var(--slima-marinho);
}

.slima-login .form-floating > label {
  color: #6b7280;
}

/* Campo selecionado: sem contorno colorido; só o ícone escurece */
.slima-login .form-control:focus {
  border-color: var(--slima-bege);
  box-shadow: none;
}

.slima-login .input-group:focus-within .input-group-text {
  color: var(--slima-marinho);
}

#toggleSenha {
  cursor: pointer;
}

#toggleSenha:hover {
  color: var(--slima-marinho);
}

.slima-login .form-check-input {
  border-color: var(--slima-taupe-claro);
}

.slima-login .form-check-input:checked {
  background-color: var(--slima-marinho);
  border-color: var(--slima-marinho);
}

.slima-login .form-check-input:focus {
  border-color: var(--slima-taupe-claro);
  box-shadow: 0 0 0 0.2rem rgba(166, 153, 137, 0.3);
}

.slima-login .form-check-label {
  font-size: 0.875rem;
  color: #5b6470;
}

/* Botão principal */
.btn-slima {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--slima-marinho);
  --bs-btn-border-color: var(--slima-marinho);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--slima-taupe);
  --bs-btn-hover-border-color: var(--slima-taupe);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--slima-marinho-escuro);
  --bs-btn-active-border-color: var(--slima-marinho-escuro);
  --bs-btn-focus-shadow-rgb: 166, 153, 137;
  padding: 0.85rem 1rem;
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 0.375rem;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

/* Celular/tablet: esconde o painel da marca e mostra o logo sobre o formulário */
@media (max-width: 991.98px) {
  .login-marca {
    display: none;
  }

  .login-logo-mobile {
    display: block;
  }

  .login-form-area {
    align-items: flex-start;
    padding-top: 3.5rem;
  }

  .login-eyebrow,
  .login-titulo {
    text-align: center;
  }
}

/* Com o ícone de busca escondido, o campo do número volta a ter o canto direito arredondado */
.slima-form .input-group:has(> .slima-buscando.d-none) > .form-control {
  border-top-right-radius: var(--bs-border-radius);
  border-bottom-right-radius: var(--bs-border-radius);
}

/* ============================================================
   Jurídico > Detalhes do processo
   ============================================================ */
.slima-processo-resumo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 1.5rem;
}

.slima-processo-resumo > div {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.slima-resumo-rotulo {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--slima-texto-suave);
}

.slima-resumo-valor {
  color: var(--slima-texto);
  font-weight: 500;
  overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
  .slima-processo-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  .slima-processo-resumo { grid-template-columns: 1fr; }
}

/* Abas */
.slima-abas > .card-header {
  padding-bottom: 0;
  background: #fff;
}

/* O Bootstrap puxa a lista para baixo (margin-bottom negativa do tamanho do padding do cabeçalho);
   sem esse padding, os botões passavam 8px da linha. Assim terminam nela, e a aba ativa a cobre. */
.slima-abas .nav-tabs {
  margin-bottom: 0;
  --bs-nav-tabs-border-color: var(--slima-borda);
  --bs-nav-tabs-link-active-color: var(--slima-marinho);
  --bs-nav-tabs-link-active-border-color: var(--slima-borda) var(--slima-borda) #fff;
}

/* Mesmo peso em todas as abas: com negrito só na ativa, a largura mudava a cada troca e as abas
   ao lado andavam. Sem transição de borda: a borda da aba antiga sumia aos poucos enquanto o
   traço da nova aparecia na hora. */
.slima-abas .nav-link {
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--slima-texto-suave);
  transition: color 0.15s ease-in-out;
}

.slima-abas .nav-link:hover {
  color: var(--slima-marinho);
}

.slima-abas .nav-link.active {
  box-shadow: inset 0 2px 0 var(--slima-taupe-claro);
}

.slima-abas .tab-pane > .card-body,
.slima-abas .tab-pane > form > .card-body {
  padding: 1.25rem 1.5rem;
}

/* Bolinha na aba Dados gerais: há alterações não salvas */
.slima-aba-alterado {
  width: 0.45rem;
  height: 0.45rem;
  margin-left: 0.4rem;
  border-radius: 50%;
  background: #d97706;
}

/* Movimentações (linha do tempo agrupada por dia) */
.slima-mov-barra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.slima-mov-info {
  font-size: 0.8rem;
  color: var(--slima-texto-suave);
}

.slima-mov-busca {
  max-width: 320px;
}

.slima-mov-dia {
  position: relative;
  padding-left: 1.5rem;
  border-left: 2px solid var(--slima-borda);
  margin-left: 0.4rem;
}

.slima-mov-dia + .slima-mov-dia {
  padding-top: 0.25rem;
}

.slima-mov-data {
  position: relative;
  margin-bottom: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--slima-marinho);
  font-variant-numeric: tabular-nums;
}

.slima-mov-data::before {
  content: "";
  position: absolute;
  left: calc(-1.5rem - 6px);
  top: 0.25rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--slima-taupe-claro);
}

.slima-mov-lista {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.slima-mov-item {
  display: grid;
  grid-template-columns: 3.2rem 1fr;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #f1f5f9;
  border-radius: 0.5rem;
  background: #fff;
  font-size: 0.875rem;
}

.slima-mov-item + .slima-mov-item {
  margin-top: 0.35rem;
}

.slima-mov-hora {
  color: var(--slima-texto-suave);
  font-variant-numeric: tabular-nums;
}

.slima-mov-nome {
  color: var(--slima-texto);
  font-weight: 600;
}

.slima-mov-complemento {
  color: #475569;
}

.slima-mov-orgao {
  font-size: 0.78rem;
  color: var(--slima-texto-suave);
}

/* Sócios do cliente: um campo só de leitura por sócio; a qualificação vai no rótulo, mais apagada */
.slima-socio-cargo {
  font-weight: 400;
  color: var(--slima-texto-suave);
}

/* Histórico (anotações): mesma linha do tempo das Movimentações, com autor e texto */
.slima-hist-autor {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--slima-texto-suave);
}

.slima-hist-texto {
  margin-top: 0.15rem;
  color: var(--slima-texto);
  white-space: pre-wrap;        /* mantém as quebras de linha da anotação */
  overflow-wrap: anywhere;
}

.slima-hist-form textarea {
  resize: none;
}

/* Anexos */
.slima-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding: 1.5rem 1rem;
  border: 2px dashed #cbd5e1;
  border-radius: 0.75rem;
  background: #f8fafc;
  text-align: center;
  font-size: 0.875rem;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.slima-dropzone.slima-arrastando {
  border-color: var(--slima-taupe);
  background: #f5f2ee;
}

.slima-dropzone-icone {
  font-size: 1.8rem;
  color: var(--slima-taupe);
}

.slima-envios:not(:empty) {
  margin-top: 0.75rem;
}

.slima-envio {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 0.25rem 1rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--slima-borda);
  border-radius: 0.5rem;
  font-size: 0.82rem;
}

.slima-envio + .slima-envio {
  margin-top: 0.35rem;
}

.slima-envio .progress {
  grid-column: 1 / -1;
  height: 4px;
}

.slima-envio .progress-bar {
  background-color: var(--slima-marinho);
}

.slima-tabela-anexos {
  min-width: 760px;
}

.slima-tabela .slima-acoes .btn + .btn {
  margin-left: 0.35rem;
}

.slima-anexo-icone {
  font-size: 1.15rem;
  color: var(--slima-taupe);
}

.slima-modal-icone-perigo {
  background: #dc2626;
  color: #fff;
  box-shadow: 0 6px 16px rgba(220, 38, 38, 0.25);
}

/* ============================================================
   RH (Usuários, Aniversários, Cargos)
   ============================================================ */
.slima-linha-inativa td {
  color: var(--slima-texto-suave);
}

.slima-linha-inativa .slima-link-nome {
  color: var(--slima-texto-suave);
}

/* Linha recém-salva: realce que some sozinho (no lugar de um aviso de "salvo com sucesso") */
.slima-linha-destaque > td {
  animation: slima-linha-destaque 2.4s ease-out both;
}

@keyframes slima-linha-destaque {
  0%, 35% { background-color: #fef3c7; }
  100%    { background-color: transparent; }
}

/* OAB: número e UF no mesmo campo */
.slima-oab-uf {
  flex: 0 0 5.2rem;
}

/* Permissões do cargo: um bloco por menu, com as telas em interruptores */
.slima-permissoes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}

.slima-permissao-grupo {
  min-width: 0;
  margin: 0;
  padding: 0.65rem 0.85rem 0.5rem;
  border: 1px solid var(--slima-borda);
  border-radius: 0.6rem;
  background: #f8fafc;
}

.slima-permissao-titulo {
  float: left; /* como no reboot do Bootstrap: o título fica dentro do quadro, não em cima da borda */
  width: 100%;
  margin: 0 0 0.45rem;
  padding: 0 0 0.45rem;
  border-bottom: 1px solid var(--slima-borda);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--slima-texto);
}

.slima-permissao-titulo .bi {
  color: var(--slima-taupe);
}

.slima-permissao-grupo .form-switch {
  margin-bottom: 0.3rem;
  font-size: 0.85rem;
}

.slima-permissao-grupo .form-check-input:disabled ~ .form-check-label {
  opacity: 0.8;
}

/* Interruptores e caixas na cor da marca também nos modais (que ficam fora do .app-main) */
.slima-modal .form-check-input:checked,
.slima-modal .form-check-input:indeterminate {
  background-color: var(--slima-marinho);
  border-color: var(--slima-marinho);
}

.slima-modal .form-check-input:focus {
  border-color: var(--slima-taupe-claro);
  box-shadow: 0 0 0 0.2rem rgba(166, 153, 137, 0.3);
}

/* Aniversários */
.slima-aniver-hoje {
  padding: 1.1rem 1.25rem;
  background: linear-gradient(135deg, var(--slima-marinho) 0%, #34475a 100%);
  border-radius: 0.75rem;
  color: #fff;
  box-shadow: 0 8px 20px rgba(35, 47, 59, 0.22);
}

.slima-aniver-hoje-rotulo {
  margin-bottom: 0.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slima-bege);
}

.slima-aniver-pessoa {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.35rem 0;
}

.slima-aniver-avatar {
  width: 2.6rem;
  height: 2.6rem;
  font-size: 0.85rem;
}

.slima-aniver-nome {
  font-size: 1.05rem;
  font-weight: 600;
}

.slima-aniver-cargo {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
}

.slima-aniver-meses {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
}

.app-main .slima-aniver-mes {
  box-shadow: none;
}

.app-main .slima-aniver-mes-atual {
  border-color: var(--slima-taupe-claro);
  box-shadow: 0 0 0 1px var(--slima-taupe-claro), var(--slima-sombra);
}

.slima-aniver-mes-vazio .card-header .card-title {
  color: var(--slima-texto-suave);
}

.slima-aniver-lista > li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.875rem;
}

.slima-aniver-lista > li:last-child {
  border-bottom: 0;
}

.slima-aniver-dia {
  flex: 0 0 auto;
  min-width: 2.4rem;
  padding: 0.15rem 0.4rem;
  background: #f1f5f9;
  border-radius: 0.4rem;
  font-weight: 700;
  color: var(--slima-marinho);
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.slima-aniver-nome-lista {
  flex: 1;
  min-width: 0;
  color: var(--slima-texto);
  font-weight: 500;
}

.slima-aniver-cargo-lista {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--slima-texto-suave);
}

.slima-aniver-quando {
  font-size: 0.78rem;
  color: var(--slima-texto-suave);
  white-space: nowrap;
}

.slima-aniver-e-hoje {
  background: #fffbeb;
}

.slima-aniver-e-hoje .slima-aniver-dia {
  background: var(--slima-marinho);
  color: #fff;
}

.slima-aniver-icone {
  color: #d97706;
}

@media (prefers-reduced-motion: reduce) {
  .slima-linha-destaque > td {
    animation: none;
  }
}

/* ============================================================
   Jurídico > Diário Oficial
   ============================================================ */
/* Planilha: uma linha por publicação (tbody.slima-dj), com o dia como linha de grupo.
   Colunas no <colgroup> da view. Abaixo da largura mínima a tabela rola na horizontal, para Vara e
   Autor / Réu (as colunas sem largura fixa) não ficarem espremidas. */
.slima-dj-planilha { min-width: 1420px; }

.slima-dj-planilha > :not(caption) > * > * {
  padding: 0.6rem 0.65rem;
}

.slima-dj-planilha > :not(caption) > * > :first-child { padding-left: 1rem; }
.slima-dj-planilha > :not(caption) > * > :last-child { padding-right: 0.75rem; }
/* Tudo no meio da linha, na vertical */
.slima-dj-planilha td { vertical-align: middle; }

/* Dia: linha de grupo, na largura toda */
.slima-dj-dia th {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  background: #f1f5f9;
  border-bottom: 1px solid var(--slima-borda);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #334155;
  text-align: left;
}

/* Linha centralizada (o dia fica à esquerda); o clique nela marca como lida */
.slima-dj-linha { cursor: pointer; }
.slima-dj-linha:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: -2px; }
.slima-dj-linha > td { text-align: center; transition: background-color 0.15s ease; }
.slima-dj-linha:hover > td { background-color: #f8fafc; }

/* Lida: linha verde-clarinho */
.slima-dj-lida > .slima-dj-linha > td { background-color: #f0fdf4; border-bottom-color: #dcfce7; }
.slima-dj-lida > .slima-dj-linha:hover > td { background-color: #e7f9ed; }

.slima-dj-tribunal {
  font-size: 0.84rem;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
}

/* Tipo da publicação numa linha só; se um tipo novo não couber, reticências (o nome inteiro fica no title) */
.slima-dj-tipo {
  display: block;
  overflow: hidden;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--slima-texto);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.slima-dj-selos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25rem;
  margin-top: 0.3rem;
}

/* Número CNJ inteiro numa linha (algarismos de largura igual); copiar ao lado */
.slima-dj-numero {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--slima-texto);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.slima-dj-numero + .badge { margin-top: 0.25rem; } /* "No SLIMA", embaixo do número */

/* Classe e Vara numa linha só; o nome inteiro fica no title */
.slima-dj-classe,
.slima-dj-vara {
  overflow: hidden;
  font-size: 0.84rem;
  color: #334155;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Autor e Réu, cada um em até duas linhas */
.slima-dj-parte {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 0.82rem;
  line-height: 1.4;
  color: #334155;
}

.slima-dj-parte + .slima-dj-parte { margin-top: 0.2rem; }

.slima-dj-polo {
  margin-right: 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--slima-taupe);
}

.slima-dj-prazo .slima-ev-chips { justify-content: center; margin-top: 0; }
/* Etiqueta numa linha só, um pouco menor que nas Movimentações; se nem assim couber, só o estado
   ("· vencido") desce, centralizado, e o ícone continua junto do rótulo */
.slima-dj-prazo .slima-ev-chip {
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 0.25rem;
  row-gap: 0;
  padding: 0.15rem 0.5rem;
  border-radius: 0.8rem;
  font-size: 0.72rem;
}

.slima-dj-criar {
  --bs-btn-font-size: 0.78rem;
  color: var(--slima-texto-suave);
  text-decoration: none;
}

.slima-dj-criar:hover,
.slima-dj-criar:focus-visible {
  color: var(--slima-marinho);
  text-decoration: underline;
}

.slima-dj-acao {
  --bs-btn-padding-y: 0.2rem;
  --bs-btn-padding-x: 0.5rem;
  --bs-btn-font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #fff;
  border: 1px solid var(--slima-borda);
  color: var(--slima-texto);
  white-space: nowrap;
}

.slima-dj-acao:hover {
  background: #fff;
  border-color: var(--slima-taupe-claro);
  color: var(--slima-marinho);
}


/* Ações: Certidão e Documento numa linha */
.slima-dj-botoes {
  display: inline-flex;
  gap: 0.25rem;
}

.slima-dj-botoes .btn { --bs-btn-padding-x: 0.4rem; }
.slima-dj-acao i { color: var(--slima-texto-suave); }
.slima-dj-acao:hover i { color: inherit; }
.slima-dj-acao.disabled { opacity: 0.45; }
.slima-tabela .slima-dj-botoes .btn + .btn { margin-left: 0; } /* vence o espaço entre botões de .slima-acoes */

/* Só o ícone (Certidão, sala): quadrado, do tamanho do botão com texto ao lado */
.slima-dj-botoes .slima-dj-acao-icone { --bs-btn-padding-x: 0.45rem; justify-content: center; }

/* Sala da audiência/sessão por vídeo: o mesmo verde da etiqueta "Link" da Agenda */
.slima-dj-acao.slima-dj-sala {
  background: #dcfce7;
  border-color: #86efac;
  color: #15803d;
}
.slima-dj-acao.slima-dj-sala i { color: #15803d; }
.slima-dj-acao.slima-dj-sala:hover,
.slima-dj-acao.slima-dj-sala:focus-visible {
  background: #bbf7d0;
  border-color: #4ade80;
  color: #166534;
}
.slima-dj-acao.slima-dj-sala:hover i { color: #166534; }

/* Próxima busca automática no DJEN, ao lado da última */
.slima-dj-proxima {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: 0.5rem;
  padding-left: 0.6rem;
  border-left: 1px solid var(--slima-borda);
  color: var(--slima-texto-suave);
  white-space: nowrap;
}

/* Lida: sem negrito; continua legível */
.slima-dj-lida .slima-dj-tipo,
.slima-dj-lida .slima-dj-numero {
  font-weight: 500;
  color: var(--slima-texto-corpo);
}

.slima-dj-lida .slima-dj-parte,
.slima-dj-lida .slima-dj-vara { color: var(--slima-texto-suave); }

.slima-pub-cancelada .slima-pub-texto {
  text-decoration: line-through;
  color: var(--slima-texto-suave);
}

/* Saída da linha (Agenda: .slima-ag-saindo) */
@keyframes slima-pub-saindo {
  to { opacity: 0; transform: translateX(12px); }
}

/* Recolhido: cerca de 4 linhas, com esmaecido no fim (sem linha cortada ao meio) */
.slima-pub-texto {
  max-height: calc(1.5em * 4 + 1.2rem);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 2.2em), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 2.2em), transparent);
  margin-top: 0.6rem;
  padding: 0.6rem 0.75rem;
  background: #f8fafc;
  border-radius: 0.45rem;
  font-size: 0.84rem;
  line-height: 1.5;
  color: #334155;
  white-space: pre-line;   /* mantém as quebras de linha do texto da publicação */
  overflow-wrap: anywhere;
}

.slima-pub-texto-aberto {
  max-height: 60vh;
  overflow: auto;
  -webkit-mask-image: none;
  mask-image: none;
}

/* Texto curto (cabe inteiro): sem esmaecido */
.slima-pub-texto[data-curto] {
  -webkit-mask-image: none;
  mask-image: none;
}

.slima-pub-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.1rem;
  margin-top: 0.5rem;
  font-size: 0.8rem;
}

.slima-pub-acoes .btn-link {
  --bs-btn-font-size: 0.8rem;
}

/* ============================================================
   RH > Usuários: foto do usuário (ou iniciais) e telefone
   partials/avatar.ejs: <img class="slima-avatar slima-avatar-foto"> ou
   <span class="slima-socio-avatar slima-avatar"> com as iniciais
   ============================================================ */
.slima-avatar-foto {
  flex: 0 0 auto;
  display: block;
  width: 2.1rem;
  height: 2.1rem;
  background: var(--slima-bege);
  border-radius: 50%;
  object-fit: cover;
}

/* Tamanhos (valem para a foto e para as iniciais) */
.slima-avatar.slima-aniver-avatar {
  width: 2.6rem;
  height: 2.6rem;
}

.slima-avatar.slima-avatar-pequeno {
  width: 1.6rem;
  height: 1.6rem;
  font-size: 0.6rem;
}

.slima-avatar.slima-avatar-cabecalho {
  width: 1.9rem;
  height: 1.9rem;
  margin-right: 0.45rem;
  font-size: 0.68rem;
}

.user-menu .user-header .slima-avatar.slima-avatar-menu {
  display: grid;
  width: 90px;
  height: 90px;
  margin: 0.25rem auto 0;
  border: 3px solid rgba(255, 255, 255, 0.25);
  font-size: 1.9rem;
}

.slima-avatar.slima-avatar-modal {
  width: 4.5rem;
  height: 4.5rem;
  font-size: 1.35rem;
}

/* ---------------- Perfil (perfil.ejs), no formato do "Meu Perfil" do ERP_EX ----------------
   Cartão branco > seção "Dados gerais" com fundo cinza > grade de campos com ícone (1, 2 e 3 colunas) > rodapé com o
   "Salvar dados". Rótulos em caixa alta pequena, como os do ERP_EX (text-xs uppercase tracking-wide). */
.slima-perfil > .card-body { padding: 20px; }

.slima-perfil-secao {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}

.slima-perfil-secao-titulo { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: #1e293b; }

.slima-perfil-grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

@media (min-width: 576px) { .slima-perfil-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .slima-perfil-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.slima-perfil-foto-linha { grid-column: 1 / -1; }

.slima-perfil-rotulo {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  color: #64748b;
}

.slima-perfil .form-control:disabled { background-color: #fff; color: #334155; opacity: 1; }
.slima-perfil .slima-input-icone .form-control:disabled ~ .input-group-text,
.slima-perfil .slima-input-icone:has(.form-control:disabled) .input-group-text { background-color: #f1f5f9; color: #94a3b8; }

.slima-perfil-foto-bloco { display: flex; align-items: center; gap: 16px; }
.slima-perfil-foto { flex: 0 0 auto; }

.slima-avatar.slima-avatar-perfil {
  width: 88px;
  height: 88px;
  margin: 0;
  border: 1px solid #cbd5e1;
  font-size: 1.75rem;
}

.slima-perfil-identidade { min-width: 0; }
.slima-perfil-nome { margin: 0; font-size: 1.05rem; font-weight: 600; color: #0f172a; }
.slima-perfil-cargo { margin: 0; font-size: 13px; font-weight: 500; color: #64748b; }
.slima-perfil-foto-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }

.slima-perfil-rodape {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

/* Lista: foto ao lado do nome e do e-mail */
.slima-usuario-celula {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.slima-usuario-texto {
  min-width: 0;
}

.slima-usuario-telefone {
  color: inherit;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}

.slima-usuario-telefone:hover,
.slima-usuario-telefone:focus-visible {
  color: var(--slima-marinho);
  text-decoration: underline;
}

.slima-usuario-whatsapp .bi {
  color: #16a34a;
}

/* Modal do usuário: área da foto, acima dos campos */
.slima-usuario-foto {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 0.6rem;
}

.slima-usuario-foto-texto {
  min-width: 0;
}

.slima-usuario-foto-titulo {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--slima-texto);
}

/* =====================================================================
   Jurídico > Agenda (agenda.ejs, _agenda-item, _evento-modal, _eventos-chips) e o que ela põe
   no Diário Oficial, nas Movimentações do processo, na lista de Processos e no Dashboard.
   Cada tipo de compromisso tem uma cor (--ev-cor, texto/filete) e um fundo (--ev-fundo).
   ===================================================================== */
.slima-ev-prazo     { --ev-cor: #b42318; --ev-fundo: #fef3f2; }
.slima-ev-audiencia { --ev-cor: #1d4ed8; --ev-fundo: #eff6ff; }
.slima-ev-sessao    { --ev-cor: #6d28d9; --ev-fundo: #f5f3ff; }
.slima-ev-pericia   { --ev-cor: #0f766e; --ev-fundo: #f0fdfa; }
.slima-ev-reuniao   { --ev-cor: #b45309; --ev-fundo: #fffbeb; }
.slima-ev-tarefa    { --ev-cor: #334155; --ev-fundo: #f1f5f9; }
.slima-ev-outro     { --ev-cor: var(--slima-taupe); --ev-fundo: #f7f4f2; }

/* Faixa de números (atalhos): Vencidos, Hoje, Próximos 7 dias */
.slima-agenda-faixa {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--slima-borda);
  border-radius: 0.65rem;
  box-shadow: var(--slima-sombra);
}

.card .slima-agenda-faixa { box-shadow: none; }

.slima-agenda-faixa-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.7rem 0.95rem;
  border-right: 1px solid var(--slima-borda);
  color: inherit;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.slima-agenda-faixa-item:last-child { border-right: 0; }
.slima-agenda-faixa-item:hover { background: #f8fafc; }
.slima-agenda-faixa-item .slima-faixa-valor { font-size: 1.35rem; }
.slima-agenda-faixa-alerta .slima-faixa-valor { color: #b42318; }

.slima-agenda-faixa-item.ativo::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--slima-marinho);
}

/* ---------------- Lista da aba Agenda do processo (_agenda-item) ----------------
   Os compromissos em linhas (não em cartões soltos), separadas por um fio; o filete colorido à esquerda diz o tipo. */
.slima-ag-lista {
  display: flex;
  flex-direction: column;
}

.slima-ag-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.75rem;
  background: #fff;
  border-bottom: 1px solid #edf1f5;
  border-left: 3px solid var(--ev-cor);
  transition: background-color 0.15s ease;
}

.slima-ag-item:hover { background: #f8fafc; }

.slima-ag-quando {
  display: flex;
  flex: 0 0 4.6rem;
  flex-direction: column;
  font-size: 0.8rem;
  line-height: 1.3;
  color: var(--slima-texto-suave);
  font-variant-numeric: tabular-nums;
}

.slima-ag-quando-data { font-weight: 700; color: var(--slima-texto); }
.slima-ag-hora { font-size: 0.9rem; font-weight: 600; color: var(--slima-texto); }

.slima-ag-corpo {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  padding: 0;
  background: none;
  border: 0;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.slima-ag-corpo:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: 3px; border-radius: 0.3rem; }
.slima-ag-corpo:hover .slima-ag-titulo { text-decoration: underline; }

.slima-ag-topo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.5rem;
}

.slima-ag-tipo {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ev-cor);
}

.slima-ag-titulo {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--slima-texto);
  overflow-wrap: anywhere;
}

.slima-ag-info {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #475569;
}

.slima-ag-info > span + span::before { content: '·'; margin-right: 0.5rem; color: #a3afbd; }
.slima-ag-info .bi { color: #94a3b8; }
.slima-ag-quem { font-weight: 600; color: #1e293b; }

.slima-ag-local {
  max-width: 22rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.slima-ag-cumprir { flex: 0 0 auto; }
.slima-ag-vencido { background: #fff7f7; }
.slima-ag-vencido:hover { background: #fef0f0; }
.slima-ag-feito { opacity: 0.72; }
.slima-ag-feito .slima-ag-titulo { text-decoration: line-through; }

.slima-ag-saindo { animation: slima-pub-saindo 0.35s ease forwards; }

@media (max-width: 575.98px) {
  .slima-ag-item { flex-wrap: wrap; }
  .slima-ag-corpo { flex-basis: calc(100% - 6rem); }
}

/* ---------------- Modal do compromisso ----------------
   A cor do tipo (--ev-cor/--ev-fundo, classe slima-ev-<tipo> no #formEvento) pinta a faixa do topo, o ícone e o rótulo
   do tipo. Existente abre no modo ver (.slima-evver: selos, link da sala, dados em linhas, Diário Oficial); "Editar" e
   o novo mostram o formulário (agenda-evento.js, data-modo). */
#formEvento .modal-header { box-shadow: inset 0 4px 0 var(--ev-cor, var(--slima-marinho)); padding-top: 1.3rem; }

#formEvento .slima-modal-icone {
  background: var(--ev-fundo, #f1f5f9);
  color: var(--ev-cor, var(--slima-marinho));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ev-cor, #64748b) 25%, transparent);
}

.slima-evento-cabecalho { min-width: 0; }

.slima-evento-tipo-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; margin-bottom: 0.15rem; }

.slima-evento-tipo {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ev-cor, var(--slima-marinho));
}

#formEvento[data-modo="ver"] .modal-title { font-size: 1.2rem; line-height: 1.3; overflow-wrap: anywhere; }
#formEvento[data-modo="ver"] .slima-modal-subtitulo { margin-top: 0.15rem; font-size: 0.86rem; color: #475569; }

/* Selo ao lado do tipo: quanto falta (ou há quanto venceu) ou a situação */
.slima-evver-selos { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; }
.slima-evver-selos:empty { display: none; }

.slima-evver-selo {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.05rem 0.5rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.5;
}

.slima-evver-selo .bi { font-size: 0.72rem; }
.slima-evver-selo-vencido { background: #fee2e2; color: #991b1b; }
.slima-evver-selo-hoje    { background: #fef3c7; color: #92400e; }
.slima-evver-selo-neutro  { background: #f1f5f9; color: #475569; }
.slima-evver-selo-ok      { background: #dcfce7; color: #166534; }

/* Link da sala (audiência ou sessão por vídeo) */
.slima-evver-sala {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.1rem;
  padding: 0.7rem 0.8rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.75rem;
}

.slima-evver-sala-icone {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.6rem;
  background: #16a34a;
  color: #fff;
  font-size: 1.1rem;
}

.slima-evver-sala-texto { display: flex; flex: 1; flex-direction: column; min-width: 0; line-height: 1.35; }
.slima-evver-sala-texto strong { font-size: 0.88rem; color: #14532d; }
.slima-evver-sala-texto span { overflow: hidden; font-size: 0.78rem; color: #3f6b4f; text-overflow: ellipsis; white-space: nowrap; }
.slima-evver-sala .slima-btn-icone { --bs-btn-bg: #fff; flex: 0 0 auto; }

.slima-modal .slima-evver-sala-entrar {
  --bs-btn-color: #fff;
  --bs-btn-bg: #16a34a;
  --bs-btn-border-color: #16a34a;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #15803d;
  --bs-btn-hover-border-color: #15803d;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #166534;
  flex: 0 0 auto;
  padding-inline: 0.95rem;
  font-weight: 600;
}

/* Os dados, lado a lado (prazo, local, responsável, processo), cada um da largura do que mostra, e a sobra dividida;
   texto longo demais desce para a linha de baixo. As anotações na largura toda. No celular, um embaixo do outro */
.slima-evver-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.slima-evver-lista > li { flex: 1 1 auto; min-width: 9rem; }
.slima-evver-lista > .slima-evver-linha-texto { flex-basis: 100%; }
.slima-evver-linha-processo .slima-evver-principal { white-space: nowrap; overflow-wrap: normal; }

@media (max-width: 575.98px) {
  .slima-evver-lista > li { flex-basis: 100%; }
}

.slima-evver-linha { display: flex; gap: 0.75rem; min-width: 0; }

.slima-evver-linha > .bi {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.55rem;
  background: #f1f5f9;
  color: #64748b;
  font-size: 1rem;
}

.slima-evver-linha-corpo { flex: 1; min-width: 0; }

.slima-evver-rotulo {
  display: block;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #94a3b8;
}

.slima-evver-principal { font-size: 0.9rem; font-weight: 500; color: var(--slima-texto); overflow-wrap: anywhere; }
.slima-evver-complemento { margin-top: 0.05rem; font-size: 0.8rem; color: #64748b; overflow-wrap: anywhere; }

.slima-evver-processo { display: inline-flex; align-items: center; font-weight: 600; color: var(--slima-marinho); text-decoration: none; }
.slima-evver-processo:hover { text-decoration: underline; }

.slima-evver-linha-texto .slima-evver-principal {
  margin-top: 0.15rem;
  padding: 0.55rem 0.75rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 0.55rem;
}

.slima-evver-anotacoes { font-size: 0.86rem; font-weight: 400; color: #334155; white-space: pre-line; }

/* Do Diário Oficial: separado por um filete, sem caixa em volta. Topo (título e, se alterado à mão, o aviso),
   a conta (linha do tempo + regras), o trecho em citação e as publicações em lista */
.slima-evdj { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--slima-borda); }

.slima-evdj-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem 1rem; margin-bottom: 0.75rem; }

.slima-evdj-titulo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slima-marinho);
}

.slima-evdj-titulo .bi {
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 0.45rem;
  background: var(--slima-marinho);
  color: var(--slima-bege);
  font-size: 0.8rem;
}

.slima-evdj-status { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; font-weight: 600; }
.slima-evdj-status-ok { color: #166534; }
.slima-evdj-status-mao { color: #475569; }

/* A conta: linha do tempo (disponibilização → publicação → início → vencimento) e, embaixo, as regras */
.slima-evdj-conta { margin-bottom: 1rem; padding: 0.9rem 1rem 0.75rem; background: #f8fafc; border-radius: 0.75rem; }

.slima-evdj-passos {
  display: grid;
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.slima-evdj-passos:empty { display: none; }

.slima-evdj-passo { position: relative; padding-top: 1.15rem; text-align: center; }

/* Bolinha de cada passo e o traço que liga à anterior */
.slima-evdj-passo::before {
  content: '';
  position: absolute;
  z-index: 1;
  top: 0.15rem;
  left: 50%;
  width: 0.7rem;
  height: 0.7rem;
  margin-left: -0.35rem;
  background: #fff;
  border: 2px solid #94a3b8;
  border-radius: 50%;
}

.slima-evdj-passo + .slima-evdj-passo::after {
  content: '';
  position: absolute;
  top: 0.45rem;
  right: 50%;
  width: 100%;
  height: 2px;
  background: #cbd5e1;
}

.slima-evdj-passo-rotulo { display: block; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #94a3b8; }
.slima-evdj-passo-data { display: block; font-size: 0.92rem; font-weight: 600; color: var(--slima-texto); font-variant-numeric: tabular-nums; }
.slima-evdj-passo-dia { display: block; font-size: 0.72rem; color: #64748b; }

.slima-evdj-passo-fim::before { background: var(--ev-cor); border-color: var(--ev-cor); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ev-cor) 20%, transparent); }
.slima-evdj-passo-fim .slima-evdj-passo-rotulo,
.slima-evdj-passo-fim .slima-evdj-passo-data { color: var(--ev-cor); }

.slima-evdj-notas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  margin: 0.75rem 0 0;
  padding: 0.6rem 0 0;
  border-top: 1px dashed #dbe2ea;
  list-style: none;
  font-size: 0.78rem;
  color: #475569;
}

.slima-evdj-notas:empty { display: none; }
.slima-evdj-passos:empty + .slima-evdj-notas { margin-top: 0; padding-top: 0; border-top: 0; }
.slima-evdj-notas li { position: relative; padding-left: 0.75rem; }
.slima-evdj-notas li::before { content: ''; position: absolute; top: 0.55em; left: 0; width: 0.3rem; height: 0.3rem; background: #94a3b8; border-radius: 50%; }
.slima-evdj-nota-forte { flex-basis: 100%; font-weight: 600; color: var(--slima-texto); }

.slima-evdj-bloco + .slima-evdj-bloco,
.slima-evdj-conta + .slima-evdj-bloco { margin-top: 0.9rem; }

/* O trecho: citação, com a cor do tipo no filete */
.slima-evdj-trecho {
  max-height: 9.5rem;
  margin: 0.3rem 0 0;
  padding: 0.6rem 0.85rem;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--slima-borda);
  border-left: 3px solid var(--ev-cor, var(--slima-taupe-claro));
  border-radius: 0.4rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: #334155;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Publicações: uma por linha, com Ver no Diário e Documento */
.slima-evdj-pubs { margin: 0.3rem 0 0; padding: 0; list-style: none; border: 1px solid var(--slima-borda); border-radius: 0.6rem; }

.slima-evdj-pub { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0.75rem; }
.slima-evdj-pub + .slima-evdj-pub { border-top: 1px solid var(--slima-borda); }

.slima-evdj-pub-icone {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: #f1f5f9;
  color: var(--slima-marinho);
}

.slima-evdj-pub-texto { display: flex; flex: 1; flex-direction: column; min-width: 0; line-height: 1.35; }
.slima-evdj-pub-texto strong { font-size: 0.85rem; color: var(--slima-texto); }
.slima-evdj-pub-texto span { overflow: hidden; font-size: 0.76rem; color: #64748b; text-overflow: ellipsis; white-space: nowrap; }
.slima-evdj-pub-acoes { display: flex; flex: 0 0 auto; gap: 0.35rem; }
.slima-evdj-pub-acoes .btn { --bs-btn-padding-y: 0.2rem; --bs-btn-padding-x: 0.55rem; --bs-btn-font-size: 0.76rem; }
.slima-evdj-pub-acoes .btn .bi { margin-left: 0.2rem; font-size: 0.7rem; }
.slima-evdj-pub-cancelada .slima-evdj-pub-texto strong { text-decoration: line-through; color: #94a3b8; }

@media (max-width: 575.98px) {
  /* Linha do tempo em pé */
  .slima-evdj-passos { grid-auto-flow: row; gap: 0.55rem; }
  .slima-evdj-passo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.5rem; padding: 0 0 0 1.4rem; text-align: left; }
  .slima-evdj-passo::before { top: 0.2rem; left: 0; margin-left: 0; }
  .slima-evdj-passo + .slima-evdj-passo::after { content: none; }
  .slima-evdj-passo:not(:last-child)::after { content: ''; position: absolute; top: 0.85rem; right: auto; bottom: -0.75rem; left: 0.3rem; width: 2px; height: auto; background: #cbd5e1; }
  .slima-evdj-passo-rotulo { flex-basis: 100%; }
  .slima-evdj-pub { flex-wrap: wrap; }
  .slima-evdj-pub-texto { flex-basis: calc(100% - 2.75rem); }
  .slima-evdj-pub-acoes { flex-basis: 100%; }
  .slima-evdj-pub-acoes .btn { flex: 1; }
}

/* Rodapé: Editar e apagar só com o ícone, lado a lado, na altura dos outros botões. Apagar, no primeiro clique, mostra
   "Confirmar" ao lado do ícone (agenda-evento.js liga slima-confirmando por 4 s) */
#formEvento .modal-footer .slima-btn-icone { width: 2.4rem; height: 2.4rem; }
#formEvento .modal-footer .slima-btn-icone + .slima-btn-icone { margin-left: 0; }
.slima-evento-confirmar { display: none; }
#formEvento .modal-footer .slima-evento-apagar.slima-confirmando { display: inline-flex; gap: 0.35rem; width: auto; padding-inline: 0.75rem; }
.slima-evento-apagar.slima-confirmando .slima-evento-confirmar { display: inline; font-size: 0.875rem; font-weight: 600; }

@media (max-width: 575.98px) {
  /* Rodapé: a ação principal em cima, na largura toda; embaixo, os ícones de editar e apagar lado a lado */
  #formEvento .modal-footer { flex-wrap: wrap; justify-content: flex-start; gap: 0.5rem; }
  #formEvento .modal-footer > .btn { margin: 0; }
  #btnEventoSituacao, #btnEventoSalvar, #btnEventoCancelar { flex: 1 1 100%; }
  #btnEventoSituacao, #btnEventoSalvar { order: -1; }
  .slima-evver-sala { flex-wrap: wrap; }
  .slima-evver-sala-texto { flex-basis: calc(100% - 3.2rem); }
  .slima-evver-sala-entrar { flex: 1 !important; }
}

/* Etiqueta "Link" (tem link da sala): aba Agenda do processo e Dashboard. A da grade do mês é .slima-mes-ev-sala */
.slima-ev-sala-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.05rem 0.45rem;
  background: #dcfce7;
  border-radius: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: #15803d;
  white-space: nowrap;
}

.slima-ag-info .slima-ev-sala-tag .bi { color: inherit; }

.slima-evento-memoria {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
  color: #334155;
}

.slima-evento-memoria li + li { margin-top: 0.1rem; }
.slima-evento-memoria-forte { font-weight: 600; color: var(--slima-texto); }

.slima-evento-trecho {
  max-height: 9rem;
  margin-top: 0.6rem;
  padding: 0.5rem 0.7rem;
  overflow: auto;
  background: #fff;
  border-left: 3px solid var(--slima-taupe-claro);
  border-radius: 0.35rem;
  font-size: 0.8rem;
  color: #475569;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.slima-evento-calculo {
  padding: 0.6rem 0.75rem;
  background: #fcfcfd;
  border: 1px dashed #cbd5e1;
  border-radius: 0.6rem;
}

.slima-evento-calculo-titulo {
  margin-bottom: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--slima-texto);
}

/* ---------------- Etiquetas de prazo/audiência (Diário e Movimentações) ---------------- */
.slima-ev-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.slima-ev-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.6rem;
  background: var(--ev-fundo);
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--ev-cor);
  white-space: nowrap;
}

button.slima-ev-chip { cursor: pointer; }
button.slima-ev-chip:hover { filter: brightness(0.96); }
button.slima-ev-chip:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: 1px; }
.slima-ev-chip.slima-ev-vencido { background: #fee2e2; color: #991b1b; }
.slima-ev-chip.slima-ev-feito { opacity: 0.6; }
.slima-ev-chip-estado { font-weight: 500; opacity: 0.85; }
.slima-ev-chip-rotulo { display: inline-flex; align-items: center; gap: 0.3rem; white-space: nowrap; }

/* ---------------- Movimentações do processo: publicações do Diário ---------------- */
.slima-mov-aviso {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.8rem;
  background: #f8fafc;
  border: 1px solid var(--slima-borda);
  border-radius: 0.5rem;
  font-size: 0.84rem;
  color: #475569;
}

.slima-djen-selo {
  background: var(--slima-bege);
  color: var(--slima-marinho);
}

.slima-mov-diario { border-left: 3px solid var(--slima-taupe-claro); }
.slima-mov-nao-lida { border-left-color: var(--slima-marinho); }
.slima-mov-diario-corpo { min-width: 0; }

.slima-mov-djen {
  display: inline-block;
  padding: 0.05rem 0.3rem;
  background: var(--slima-bege);
  border-radius: 0.25rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--slima-marinho);
}

.slima-mov-diario-topo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
}

.slima-mov-diario .slima-pub-texto { margin-top: 0.45rem; }

/* ---------------- Lista de Processos: publicações novas e próximo prazo ---------------- */
.slima-proc-sinais {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.3rem;
}

/* ---------------- Dashboard: próximos compromissos ---------------- */
.slima-dash-agenda {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.slima-dash-agenda-item {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  grid-template-areas: "quando titulo" "quando info";
  gap: 0 0.75rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid var(--slima-borda);
  border-left: 3px solid var(--ev-cor);
  border-radius: 0.5rem;
  color: inherit;
  text-decoration: none;
}

.slima-dash-agenda-item:hover { background: #f8fafc; }
.slima-dash-agenda-quando { grid-area: quando; font-size: 0.8rem; font-weight: 600; color: var(--slima-texto); font-variant-numeric: tabular-nums; }
.slima-dash-agenda-titulo { grid-area: titulo; font-size: 0.88rem; font-weight: 600; color: var(--slima-texto); }
.slima-dash-agenda-titulo .bi { color: var(--ev-cor); }
.slima-dash-agenda-info { grid-area: info; font-size: 0.78rem; color: var(--slima-texto-suave); }

@media (max-width: 575.98px) {
  .slima-dash-agenda-item { grid-template-columns: 1fr; grid-template-areas: "quando" "titulo" "info"; }
}

/* =====================================================================
   Agenda > Mês, como o do Google Agenda: navegação ao lado do título, grade de 6 semanas (segunda a domingo) com
   linhas de 1px na altura da tela (public/js/agenda.js), hoje com anel verde e cada compromisso numa linha com o
   pontinho da cor do tipo (--ev-cor, definido acima).
   ===================================================================== */


/* Navegação do mês ao lado do título (_agenda-nav.ejs), como o topo do Google Agenda */
.slima-ag-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-left: 0.75rem;
}

.slima-ag-nav .btn-outline-secondary { background: #fff; }

.slima-ag-titulo-mes {
  margin: 0 0 0 0.35rem;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--slima-texto);
}

/* Quadro do mês */
.slima-mes-quadro {
  min-width: 0;
  padding: 0.5rem;
  background: #fff;
  border: 1px solid var(--slima-borda);
  border-radius: 0.75rem;
  box-shadow: var(--slima-sombra);
}

.slima-mes-grade {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: 24px repeat(6, minmax(96px, auto));
  gap: 1px;
  overflow: hidden;
  background: var(--slima-borda);
  border: 1px solid var(--slima-borda);
  border-radius: 0.5rem;
}

/* Tela larga: a altura vem do agenda.js (a grade cabe na tela) e as 6 semanas dividem o espaço */
.slima-mes-grade-ajustada { grid-template-rows: 24px repeat(6, minmax(0, 1fr)); }

.slima-mes-semana {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  font-size: 12px;
  font-weight: 600;
  color: #334155;
}

/* Sábado e domingo (os dois últimos da linha Seg..Dom): mais apagados, como os dias */
.slima-mes-semana:nth-child(6),
.slima-mes-semana:nth-child(7) { color: #64748b; }

.slima-mes-dia {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 3px 3px 2px;
  overflow: hidden;
  background: #fff;
  user-select: none;
}

.slima-mes-dia:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: -2px; }
.slima-mes-fds { background: #f8fafc; }
.slima-mes-passado { background: #fbfcfd; }
.slima-mes-feriado-dia { background: #fdf9f4; }
/* Hoje: anel verde; o dia aberto no painel: anel da cor da marca */
.slima-mes-hoje { box-shadow: inset 0 0 0 2px #10b981; }

.slima-mes-topo {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.25rem;
  height: 20px;
  margin-bottom: 1px;
  min-width: 0;
}

.slima-mes-num {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: #1e293b;
  font-variant-numeric: tabular-nums;
}

.slima-mes-passado .slima-mes-num { color: #64748b; }
.slima-mes-fora .slima-mes-num { color: #b6c0cc; }
.slima-mes-hoje .slima-mes-num { background: var(--slima-marinho); color: #fff; }

.slima-mes-feriado {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  font-size: 11px;
  color: #92400e;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.slima-mes-itens {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 1px;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

.slima-mes-itens:hover { scrollbar-color: #cbd5e1 transparent; }
/* Tem mais embaixo: esmaece a última linha (agenda.js liga/desliga ao rolar) */
.slima-mes-itens.slima-mes-tem-mais {
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 16px), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 16px), transparent);
}

/* Compromisso: uma linha com o pontinho da cor do tipo, a hora e o título; botão que abre o modal (agenda-evento.js) */
.slima-mes-ev {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
  width: 100%;
  height: 18px;
  min-width: 0;
  padding: 0 4px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  color: #1e293b;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.slima-mes-ev:hover { background: #f1f5f9; }
.slima-mes-ev:focus-visible { outline: 2px solid var(--slima-marinho); outline-offset: -1px; }

.slima-mes-ev-ponto {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--ev-cor);
}

.slima-mes-ev-hora { flex: 0 0 auto; color: #475569; font-weight: 600; font-variant-numeric: tabular-nums; }
.slima-mes-ev-texto { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* Tem link da sala (Zoom, Webex, Teams…): etiqueta verde "Link" no fim da linha (em tela estreita, só o ícone) */
.slima-mes-ev-sala {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 15px;
  margin-left: auto;
  padding: 0 5px;
  background: #dcfce7;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  color: #15803d;
  letter-spacing: 0.02em;
}

.slima-mes-ev-sala .bi { font-size: 10px; }
.slima-mes-ev.slima-ev-feito .slima-mes-ev-sala { opacity: 0.5; }

@media (max-width: 1199.98px) {
  .slima-mes-itens .slima-mes-ev-sala > span { display: none; }
}

/* Vencido: em vermelho. Cumprido: apagado e riscado */
.slima-mes-ev.slima-ev-vencido { color: #b42318; font-weight: 600; }
.slima-mes-ev.slima-ev-vencido .slima-mes-ev-hora { color: #b42318; }
.slima-mes-ev.slima-ev-feito { color: #94a3b8; }
.slima-mes-ev.slima-ev-feito .slima-mes-ev-ponto { opacity: 0.45; }
.slima-mes-ev.slima-ev-feito .slima-mes-ev-texto { text-decoration: line-through; }

.slima-mes-legenda {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.9rem;
  margin-top: 0.4rem;
  padding: 0 0.25rem;
  font-size: 12px;
  color: #475569;
}

.slima-mes-legenda > span { display: inline-flex; align-items: center; gap: 0.35rem; }

.slima-mes-legenda-feriado {
  display: inline-block;
  width: 14px;
  height: 10px;
  background: #fdf9f4;
  border: 1px solid #ead9c4;
  border-radius: 2px;
}

/* Celular: só os pontinhos, lado a lado (como o Google Agenda no celular); tocar abre o compromisso */
@media (max-width: 575.98px) {
  .slima-ag-nav { margin-left: 0; }
  .slima-mes-quadro { padding: 0.25rem; }
  .slima-mes-grade { grid-template-rows: 24px repeat(6, minmax(56px, auto)); }
  .slima-mes-dia { padding: 2px; }
  .slima-mes-feriado { display: none; }
  .slima-mes-itens { flex-flow: row wrap; gap: 2px; overflow: visible; }
  .slima-mes-ev { justify-content: center; width: 14px; height: 14px; padding: 0; }
  .slima-mes-ev-hora, .slima-mes-ev-texto, .slima-mes-itens .slima-mes-ev-sala { display: none; }
  /* Com link da sala: o pontinho ganha um anel verde */
  .slima-mes-ev.slima-ev-com-sala .slima-mes-ev-ponto { box-shadow: 0 0 0 2px #86efac; }
}
