/* CNJ Processo Tracker – Página de Consulta Pública */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Inter:wght@300;400;500;600;700&display=swap');

/* ================================================================
   Reset de escopo
================================================================ */
.cnj-consulta-wrap *,
.cnj-modal-overlay * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.cnj-consulta-wrap {
  /* Paleta Mattos & Mattos — navy / ouro / creme (harmonizada com o site) */
  --c-azul:     #0d1e3a;   /* navy escuro — antiga cor primária        */
  --c-azul-lt:  #1a2d55;   /* navy royal — hover / acentos             */
  --c-azul-ll:  #eef1f7;   /* navy palidíssimo — fundos de destaque    */
  --c-verde:    #b8962e;   /* (mapeado p/ ouro) — sucesso/positivo     */
  --c-verde-ll: #f6f0dc;   /* ouro palidíssimo                         */
  --c-laranja:  #9a7b1f;   /* ouro escuro — avisos                     */
  --c-laranja-ll:#f6f0dc;
  --c-borda:    #e0d9c9;   /* borda creme                              */
  --c-fundo:    #f4f1ec;   /* creme — fundo geral                      */
  --c-branco:   #ffffff;
  --c-texto:    #1a2744;   /* texto = navy                             */
  --c-muted:    #5a6478;
  --c-red:      #991B1B;
  --c-red-ll:   #FEE2E2;
  --c-ouro:     #c9a84c;   /* ouro vivo — novo acento de marca         */
  --c-ouro-cl:  #e0bf78;
  --c-sombra:   0 4px 24px rgba(13,30,58,.12);
  --c-sombra-sm:0 2px 8px  rgba(13,30,58,.08);
  --f-sans:     'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --f-mono:     'Courier New', Courier, monospace;
  --f-disp:     'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --r:          10px;
  font-family: var(--f-sans);
  color: var(--c-texto);
  background: var(--c-fundo);
  padding-bottom: 60px;
  /* Cria stacking context para que o modal (z-index:99999) fique
     acima de botões flutuantes do tema (ex: "Fale Conosco" Elementor).
     position:relative é necessário para z-index ter efeito. */
  position: relative;
  z-index: 1;
}

/* ================================================================
   Hero
================================================================ */
.cnj-hero {
  background: linear-gradient(135deg, #07111f 0%, #0d1e3a 55%, #1a2d55 100%);
  padding: 34px 24px 30px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cnj-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 20% 50%, rgba(201,168,76,.10) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 80% 30%, rgba(201,168,76,.18) 0%, transparent 70%);
  pointer-events: none;
}
.cnj-hero::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--c-ouro,#c9a84c), transparent);
  opacity: .7;
}
.cnj-hero-inner { position: relative; max-width: 640px; margin: 0 auto; }

.cnj-hero-icon {
  width: 40px; height: 40px;
  background: rgba(201,168,76,.16);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 12px;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(201,168,76,.45);
}
.cnj-hero-icon svg { width: 26px; height: 26px; color: var(--c-ouro-cl,#e0bf78); }

.cnj-hero-titulo {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.5rem, 3.4vw, 2.1rem);
  font-weight: 600;
  color: #fff;
  letter-spacing: -.01em;
  line-height: 1.12;
  margin-bottom: 6px;
}
.cnj-hero-sub {
  font-size: .88rem;
  color: rgba(255,255,255,.78);
  margin-bottom: 12px;
}
.cnj-hero-stats {
  display: inline-flex;
  gap: 20px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 30px;
  padding: 7px 20px;
  font-size: .82rem;
  color: rgba(255,255,255,.9);
  backdrop-filter: blur(6px);
}
.cnj-hero-stats strong { color: #fff; font-weight: 700; }

/* ================================================================
   Painel de Busca
================================================================ */
.cnj-busca-painel {
  max-width: 900px;
  margin: -28px auto 32px;
  padding: 0 16px;
  position: relative;
  z-index: 10;
}

.cnj-busca-row {
  display: flex;
  gap: 10px;
  background: var(--c-branco);
  border-radius: 14px;
  padding: 10px;
  box-shadow: var(--c-sombra);
  border: 1px solid var(--c-borda);
  margin-bottom: 12px;
}

.cnj-busca-campo-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--c-fundo);
  border-radius: 8px;
  padding: 0 12px;
  border: 1.5px solid transparent;
  transition: border-color .2s;
}
.cnj-busca-campo-wrap:focus-within {
  border-color: var(--c-azul-lt);
  background: #fff;
}
.cnj-busca-ico { display: flex; align-items: center; flex-shrink: 0; }
.cnj-busca-ico svg { width: 18px; height: 18px; color: var(--c-muted); }

.cnj-busca-input {
  flex: 1;
  border: none;
  background: transparent;
  font-family: var(--f-sans);
  font-size: .97rem;
  color: var(--c-texto);
  padding: 13px 0;
  outline: none;
}
.cnj-busca-input::placeholder { color: #9a9384; }

.cnj-busca-limpar {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--c-muted);
  font-size: .9rem;
  padding: 4px 6px;
  border-radius: 4px;
  transition: color .15s, background .15s;
}
.cnj-busca-limpar:hover { color: var(--c-red); background: var(--c-red-ll); }

.cnj-busca-tipo-wrap { flex-shrink: 0; }
.cnj-busca-select,
.cnj-filtro-select {
  font-family: var(--f-sans);
  font-size: .87rem;
  border: 1.5px solid var(--c-borda);
  border-radius: 8px;
  background: var(--c-fundo);
  color: var(--c-texto);
  padding: 10px 14px;
  cursor: pointer;
  outline: none;
  transition: border-color .2s;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%235C6E82' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 30px;
}
.cnj-busca-select:focus,
.cnj-filtro-select:focus { border-color: var(--c-azul-lt); background-color: #fff; }

.cnj-filtros-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  padding: 0 4px;
}
.cnj-filtro-item { display: flex; align-items: center; gap: 8px; }
.cnj-filtro-item label { font-size: .8rem; color: var(--c-muted); font-weight: 500; white-space: nowrap; }
.cnj-filtro-resultados { margin-left: auto; }
.cnj-filtro-resultados span { font-size: .82rem; color: var(--c-muted); }
.cnj-filtro-resultados strong { color: var(--c-azul); }

/* ================================================================
   Grid de cards
================================================================ */
.cnj-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ---- Card ---- */
.cnj-card {
  background: var(--c-branco);
  border: 1px solid var(--c-borda);
  border-radius: var(--r);
  padding: 20px;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s, border-color .18s;
  position: relative;
  overflow: hidden;
}
.cnj-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--c-azul-lt), var(--c-verde));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}
.cnj-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--c-sombra);
  border-color: #d8cdb8;
}
.cnj-card:hover::after { transform: scaleX(1); }

.cnj-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 12px;
}
.cnj-card-numero {
  font-family: var(--f-mono);
  font-size: .82rem;
  font-weight: 500;
  color: var(--c-azul);
  line-height: 1.4;
  word-break: break-all;
}
.cnj-card-trib {
  flex-shrink: 0;
  font-size: .68rem;
  font-weight: 700;
  background: var(--c-azul);
  color: #fff;
  padding: 3px 8px;
  border-radius: 20px;
  white-space: nowrap;
  letter-spacing: .04em;
}
.cnj-card-classe {
  font-size: .82rem;
  font-weight: 600;
  color: var(--c-texto);
  margin-bottom: 6px;
}
.cnj-card-orgao {
  font-size: .77rem;
  color: var(--c-muted);
  margin-bottom: 10px;
}

.cnj-card-partes { margin-bottom: 10px; }
.cnj-card-parte-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: .78rem;
  margin-bottom: 3px;
}
.cnj-card-polo {
  font-size: .65rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing: .04em;
  flex-shrink: 0;
}
.cnj-polo-ativo    { background: var(--c-azul-ll);    color: var(--c-azul-lt); }
.cnj-polo-passivo  { background: var(--c-laranja-ll);  color: var(--c-laranja); }
.cnj-polo-outros   { background: var(--c-verde-ll);    color: var(--c-verde); }
.cnj-card-parte-nome { color: var(--c-texto); font-weight: 500; }
.cnj-card-parte-mais { color: var(--c-muted); font-style: italic; }

.cnj-card-sep {
  border: none;
  border-top: 1px solid var(--c-borda);
  margin: 10px 0;
}

.cnj-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cnj-card-ultima-mov {
  flex: 1;
  min-width: 0;
}
.cnj-card-mov-data {
  font-size: .7rem;
  color: var(--c-muted);
  font-family: var(--f-mono);
}
.cnj-card-mov-nome {
  font-size: .75rem;
  color: var(--c-texto);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cnj-card-total-movs {
  flex-shrink: 0;
  font-size: .72rem;
  background: var(--c-fundo);
  color: var(--c-muted);
  border: 1px solid var(--c-borda);
  padding: 3px 8px;
  border-radius: 20px;
}

.cnj-card-ver-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  margin-top: 12px;
  padding: 9px;
  background: var(--c-fundo);
  border: 1px solid var(--c-borda);
  border-radius: 7px;
  font-family: var(--f-sans);
  font-size: .82rem;
  font-weight: 600;
  color: var(--c-azul-lt);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.cnj-card:hover .cnj-card-ver-btn {
  background: var(--c-azul-lt);
  border-color: var(--c-azul-lt);
  color: #fff;
}

/* ================================================================
   Skeleton loading
================================================================ */
.cnj-loading-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}
.cnj-skeleton-card {
  background: var(--c-branco);
  border: 1px solid var(--c-borda);
  border-radius: var(--r);
  padding: 20px;
}
.cnj-skeleton-card > div {
  background: linear-gradient(90deg, #ece7df 25%, #f4f1ec 50%, #ece7df 75%);
  background-size: 200% 100%;
  animation: cnj-shimmer 1.4s infinite;
  border-radius: 6px;
  margin-bottom: 10px;
}
.sk-h1 { height: 14px; width: 75%; }
.sk-h2 { height: 12px; width: 55%; }
.sk-h3 { height: 12px; width: 90%; }
.sk-h4 { height: 10px; width: 40%; }
@keyframes cnj-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ================================================================
   Empty state
================================================================ */
.cnj-empty-state {
  text-align: center;
  padding: 64px 20px;
  max-width: 400px;
  margin: 0 auto;
}
.cnj-empty-ico { font-size: 3rem; margin-bottom: 16px; }
.cnj-empty-state h3 {
  font-family: var(--f-disp);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--c-texto);
  margin-bottom: 8px;
}
.cnj-empty-state p { font-size: .9rem; color: var(--c-muted); }

/* ================================================================
   Paginação
================================================================ */
.cnj-paginacao {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin: 32px auto 0;
  max-width: 900px;
  padding: 0 16px;
  flex-wrap: wrap;
}
.cnj-pag-btn {
  font-family: var(--f-sans);
  font-size: .85rem;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border: 1.5px solid var(--c-borda);
  border-radius: 8px;
  background: var(--c-branco);
  color: var(--c-texto);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.cnj-pag-btn:hover { background: var(--c-azul-ll); border-color: var(--c-azul-lt); color: var(--c-azul-lt); }
.cnj-pag-btn.ativo { background: var(--c-azul); border-color: var(--c-azul); color: #fff; font-weight: 700; cursor: default; }
.cnj-pag-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ================================================================
   Modal
================================================================ */
.cnj-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 20, 35, .65);
  z-index: 99999;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  backdrop-filter: blur(3px);
  animation: cnj-overlay-in .2s ease;
}
@media (min-width: 640px) {
  .cnj-modal-overlay { align-items: center; padding: 20px; }
}
@keyframes cnj-overlay-in { from { opacity: 0; } to { opacity: 1; } }

.cnj-modal-box {
  background: #fff;
  border-radius: 16px 16px 0 0;
  width: 100%;
  max-height: 94vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: cnj-modal-up .28s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 24px 80px rgba(0,0,0,.3);
  position: relative;
}
@media (min-width: 640px) {
  .cnj-modal-box {
    max-width: 820px;
    border-radius: 16px;
    max-height: 88vh;
    animation: cnj-modal-in .25s cubic-bezier(.4,0,.2,1);
  }
}
@keyframes cnj-modal-up {
  from { transform: translateY(40px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
@keyframes cnj-modal-in {
  from { transform: scale(.96) translateY(10px); opacity: 0; }
  to   { transform: scale(1)   translateY(0);    opacity: 1; }
}

.cnj-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #e7e1d5;
  flex-shrink: 0;
}
.cnj-modal-header-info { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cnj-modal-numero {
  font-family: var(--f-mono);
  font-size: .95rem;
  font-weight: 600;
  color: #0d1e3a;
}
.cnj-modal-trib-badge {
  font-size: .72rem;
  font-weight: 700;
  background: #0d1e3a;
  color: #fff;
  padding: 3px 9px;
  border-radius: 20px;
  letter-spacing: .04em;
}
.cnj-modal-header-actions { display: flex; align-items: center; gap: 8px; }
.cnj-modal-btn-lido {
  font-family: var(--f-sans);
  font-size: .8rem;
  border: 1px solid #BBF7D0;
  background: #F0FDF4;
  color: #166534;
  padding: 6px 12px;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 700;
  transition: background .15s, color .15s;
}
.cnj-modal-btn-lido:hover { background: #16A34A; color: #fff; border-color: #16A34A; }
.cnj-modal-btn-sync {
  font-family: var(--f-sans);
  font-size: .8rem;
  border: 1px solid #d9d1c0;
  background: #efeae0;
  color: #1a2d55;
  padding: 6px 12px;
  border-radius: 7px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.cnj-modal-btn-sync:hover { background: #1a2d55; color: #fff; border-color: #1a2d55; }
.cnj-modal-fechar {
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1px solid #d9d1c0;
  background: #efeae0;
  color: #5c6678;
  cursor: pointer;
  font-size: 1rem;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s;
}
.cnj-modal-fechar:hover { background: #FEE2E2; color: #991B1B; border-color: #FCA5A5; }

.cnj-modal-tabs {
  display: flex;
  gap: 2px;
  padding: 10px 16px 0;
  border-bottom: 2px solid #e7e1d5;
  flex-shrink: 0;
  overflow-x: auto;
}
.cnj-modal-tab {
  font-family: var(--f-sans);
  font-size: .85rem;
  padding: 8px 16px;
  border: none;
  background: none;
  color: #5c6678;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  border-radius: 6px 6px 0 0;
}
.cnj-modal-tab:hover { color: #0d1e3a; background: #efeae0; }
.cnj-modal-tab.active { color: #0d1e3a; border-bottom-color: #c9a84c; font-weight: 600; }

.cnj-modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}

/* ---- Ficha: cabeçalho navy expandido (substitui a antiga aba Resumo) ---- */
.cnj-ficha-head {
  position: relative;
  background: #0d1e3a;
  color: #fff;
  padding: 16px 20px 15px;
  flex-shrink: 0;
}
.cnj-ficha-head__cta { position: absolute; top: 15px; right: 20px; }
.cnj-ficha-cta-btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  font-size: .76rem; font-weight: 600; letter-spacing: .02em;
  padding: 8px 14px; border-radius: 8px;
  background: #c9a84c; border: 1px solid #c9a84c; color: #07111f;
  cursor: pointer; text-decoration: none; transition: background .15s;
}
.cnj-ficha-cta-btn:hover { background: #e0bf78; color: #07111f; }
.cnj-ficha-title {
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  font-style: italic; font-weight: 600;
  font-size: 1.5rem; line-height: 1.15;
  color: #fff; margin: 0 180px 10px 0;
}
.cnj-ficha-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 13px; }
.cnj-ftag {
  font-size: .66rem; font-weight: 600; letter-spacing: .04em;
  padding: 4px 11px; border-radius: 20px; white-space: nowrap;
  border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.74);
}
.cnj-ftag--gold { border-color: #c9a84c; color: #e0bf78; }
.cnj-ficha-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1.4fr;
  gap: 9px 24px;
}
.cnj-fcell__k {
  font-size: .58rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #c9a84c;
}
.cnj-fcell__v {
  font-size: .8rem; color: rgba(244,241,236,.92);
  margin-top: 2px; line-height: 1.35;
}
.cnj-fcell--full { grid-column: 1 / -1; }
@media (max-width: 600px) {
  .cnj-ficha-head__cta { position: static; display: block; margin-bottom: 12px; }
  .cnj-ficha-title { margin-right: 0; font-size: 1.3rem; }
  .cnj-ficha-grid { grid-template-columns: 1fr 1fr; }
}

/* ---- Pane: Resumo ---- */
.cnj-resumo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.cnj-resumo-item {
  background: #efeae0;
  border: 1px solid #e7e1d5;
  border-radius: 8px;
  padding: 10px 14px;
}
.cnj-resumo-item label {
  display: block;
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #5c6678;
  margin-bottom: 4px;
}
.cnj-resumo-item span {
  font-size: .87rem;
  color: #1a2744;
  font-weight: 500;
}
.cnj-resumo-full { grid-column: 1 / -1; }

.cnj-assuntos-wrap { display: flex; flex-wrap: wrap; gap: 6px; }
.cnj-assunto-tag {
  font-size: .74rem;
  background: #f6f0dc;
  color: #1a2d55;
  border: 1px solid #e0bf78;
  padding: 3px 10px;
  border-radius: 20px;
  font-weight: 500;
}

/* ---- Pane: Partes ---- */
.cnj-partes-grupo { margin-bottom: 20px; }
.cnj-partes-grupo h4 {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #5c6678;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid #e7e1d5;
}
.cnj-parte-card {
  background: #faf7f1;
  border: 1px solid #e7e1d5;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 8px;
}
.cnj-parte-nome-linha {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.cnj-polo-badge {
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.cnj-polo-ativo-b   { background: #eef1f7; color: #1a2d55; }
.cnj-polo-passivo-b { background: #FEF3C7; color: #92400E; }
.cnj-polo-terce-b   { background: #D1FAE5; color: #065F46; }
.cnj-parte-nome-txt { font-size: .9rem; font-weight: 600; color: #1a2744; }
.cnj-parte-tipo-txt { font-size: .75rem; color: #5c6678; margin-bottom: 6px; }

.cnj-advs-lista { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #d9d1c0; }
.cnj-advs-titulo { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #5c6678; margin-bottom: 6px; }
.cnj-adv-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: #1a2744;
  margin-bottom: 4px;
}
.cnj-adv-oab { font-family: var(--f-mono); font-size: .75rem; color: #5c6678; }

/* ---- Pane: Andamentos ---- */
.cnj-andamento-busca-wrap {
  position: sticky;
  top: -20px;
  background: #fff;
  padding: 4px 0 12px;
  z-index: 2;
}
.cnj-andamento-filtro {
  width: 100%;
  font-family: var(--f-sans);
  font-size: .87rem;
  border: 1.5px solid #d9d1c0;
  border-radius: 8px;
  padding: 9px 14px;
  outline: none;
  transition: border-color .2s;
}
.cnj-andamento-filtro:focus { border-color: #1a2d55; }

.cnj-andamento-timeline { position: relative; padding-left: 26px; }
.cnj-andamento-timeline::before {
  content: '';
  position: absolute;
  left: 7px; top: 8px; bottom: 0;
  width: 2px;
  background: #e7e1d5;
}

.cnj-and-item {
  position: relative;
  margin-bottom: 14px;
  transition: opacity .15s;
}
.cnj-and-item.oculto { display: none; }
.cnj-and-item-push .cnj-and-dot {
  background: #f59e0b !important;
  box-shadow: 0 0 0 2px #fde68a !important;
}
.cnj-and-box-push {
  border-left: 3px solid #f59e0b !important;
  background: #fffbeb !important;
}
.cnj-push-badge {
  font-size: .75rem;
  margin-left: 4px;
  vertical-align: middle;
  opacity: .85;
}
.cnj-and-dot {
  position: absolute;
  left: -22px;
  top: 8px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #1a2d55;
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px #d9d1c0;
}
.cnj-and-item:first-child .cnj-and-dot {
  background: #1A7A4A;
  box-shadow: 0 0 0 2px #6EE7B7;
}
.cnj-and-box {
  background: #faf7f1;
  border: 1px solid #e7e1d5;
  border-radius: 8px;
  padding: 10px 14px;
}
.cnj-and-data {
  font-family: var(--f-mono);
  font-size: .72rem;
  color: #5c6678;
  margin-bottom: 4px;
}
.cnj-and-nome {
  font-size: .87rem;
  font-weight: 600;
  color: #1a2744;
  margin-bottom: 2px;
}
.cnj-and-compl { font-size: .8rem; color: #5c6678; margin-top: 3px; line-height: 1.4; }
.cnj-and-destaque { background: #FFFBEB; border-color: #FCD34D; }
.cnj-and-destaque .cnj-and-nome mark { background: #FEF08A; color: #713F12; border-radius: 2px; }

/* Complementos tabelados (estruturados da API) */
.cnj-and-compl-tab {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
}
.cnj-and-ct-item {
  display: inline-block;
  background: #e7e1d5;
  border: 1px solid #d9d1c0;
  border-radius: 5px;
  padding: 2px 8px;
  font-size: .73rem;
  color: #1a2744;
  line-height: 1.5;
}
.cnj-and-ct-item em {
  color: #5c6678;
  font-style: normal;
  font-weight: 600;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}

/* Link TPU do CNJ */
.cnj-and-tpu-link {
  display: inline-block;
  margin-left: 8px;
  font-size: .7rem;
  font-weight: 600;
  color: #1a2d55;
  background: #f6f0dc;
  border: 1px solid #e0bf78;
  border-radius: 4px;
  padding: 1px 6px;
  text-decoration: none;
  vertical-align: middle;
  transition: background .12s;
}
.cnj-and-tpu-link:hover { background: #eef1f7; color: #0d1e3a; }

/* Link do portal do tribunal */
.cnj-and-portal-row {
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e7e1d5;
}
.cnj-and-portal-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 700;
  color: #065F46;
  background: #D1FAE5;
  border: 1px solid #6EE7B7;
  border-radius: 7px;
  padding: 7px 14px;
  text-decoration: none;
  transition: background .12s, transform .1s;
}
.cnj-and-portal-link:hover {
  background: #A7F3D0;
  color: #064E3B;
  transform: translateY(-1px);
}

/* Polo badges extras */
.cnj-polo-ad-b   { background: #f6f0dc; color: #7a5800; }
.cnj-polo-su-b   { background: #FEF3C7; color: #92400E; }
.cnj-polo-outros-b { background: #f4f1ec; color: #1a2744; }

.cnj-sem-andamentos { text-align: center; padding: 40px 20px; color: #5c6678; font-size: .9rem; }

.cnj-modal-footer {
  padding: 10px 20px;
  border-top: 1px solid #e7e1d5;
  background: #faf7f1;
  flex-shrink: 0;
}
.cnj-modal-footer span { font-size: .75rem; color: #5c6678; }

/* ================================================================
   Highlight de busca
================================================================ */
mark.cnj-hl {
  background: #FEF08A;
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

/* ================================================================
   Responsive
================================================================ */
@media (max-width: 780px) {
  .cnj-grid { grid-template-columns: 1fr; }
  .cnj-loading-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .cnj-busca-row { flex-direction: column; }
  .cnj-busca-tipo-wrap .cnj-busca-select { width: 100%; }
  .cnj-filtros-row { gap: 8px; }
  .cnj-grid { grid-template-columns: 1fr; }
  .cnj-loading-grid { grid-template-columns: 1fr; }
  .cnj-resumo-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ================================================================
   Destaque de Novidades
================================================================ */

/* Card com novidade: borda esquerda laranja + leve glow */
.cnj-card-com-novidade {
  border-color: #F59E0B !important;
  box-shadow: 0 0 0 2px rgba(245,158,11,.18), var(--c-sombra) !important;
}
.cnj-card-com-novidade::after {
  background: linear-gradient(90deg, #F59E0B, #EF4444) !important;
  transform: scaleX(1) !important;
}

/* Barra de novidade dentro do card */
.cnj-card-novidade-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(90deg, #FFFBEB, #FEF3C7);
  border: 1px solid #FCD34D;
  border-radius: 7px;
  padding: 7px 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
  animation: cnj-novidade-entrada .4s cubic-bezier(.4,0,.2,1);
}
@keyframes cnj-novidade-entrada {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Badge "🔔 N novo(s)" */
.cnj-badge-novo {
  font-size: .75rem;
  font-weight: 800;
  color: #92400E;
  background: #FDE68A;
  border: 1px solid #F59E0B;
  padding: 2px 9px;
  border-radius: 20px;
  white-space: nowrap;
  letter-spacing: .02em;
  animation: cnj-pulse-badge 2s ease-in-out infinite;
}
@keyframes cnj-pulse-badge {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245,158,11,0); }
  50%       { box-shadow: 0 0 0 4px rgba(245,158,11,.3); }
}

/* "desde DD/MM/AAAA" */
.cnj-badge-desde {
  font-size: .72rem;
  color: #92400E;
  opacity: .75;
}

/* Botão "✓ marcar como visto" */
.cnj-btn-visto {
  margin-left: auto;
  background: none;
  border: 1px solid #D97706;
  border-radius: 6px;
  padding: 3px 10px;
  font-family: var(--f-sans);
  font-size: .72rem;
  font-weight: 600;
  color: #92400E;
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.cnj-btn-visto:hover {
  background: #D97706;
  color: #fff;
  border-color: #D97706;
}

/* Banner "N processos com novidades" acima do grid */
.cnj-novidades-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, #FFFBEB, #FEF9EE);
  border: 1.5px solid #FCD34D;
  border-radius: 10px;
  padding: 12px 20px;
  margin: 0 16px 20px;
  max-width: 1128px;
  margin-left: auto;
  margin-right: auto;
  animation: cnj-novidade-entrada .35s ease;
  flex-wrap: wrap;
  gap: 10px;
}
.cnj-novidades-banner-ico { font-size: 1.25rem; }
.cnj-novidades-banner span { font-size: .9rem; color: #92400E; }
.cnj-novidades-banner strong { color: #B45309; }

.cnj-novidades-banner-btn {
  margin-left: auto;
  background: #F59E0B;
  border: none;
  border-radius: 7px;
  padding: 7px 16px;
  font-family: var(--f-sans);
  font-size: .82rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.cnj-novidades-banner-btn:hover { background: #D97706; }

/* Admin: linha com novidade em destaque */
.cnj-row-novidade td { background: #FFFBEB !important; }
.cnj-row-novidade td:first-child { border-left: 3px solid #F59E0B; }

/* ================================================================
   Tela de Login — torre azul sobre card creme (fiel ao mockup)
================================================================ */
.cnj-pub-login-page {
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 16px 40px;
  position: relative;
  background: linear-gradient(160deg, #07111f 0%, #0d1e3a 60%, #13294a 100%);
}
.cnj-pub-login-page::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 28%, rgba(201,168,76,.08) 0%, transparent 52%),
    radial-gradient(circle at 82% 74%, rgba(201,168,76,.05) 0%, transparent 52%);
  pointer-events: none;
}

.cnj-pub-login-card {
  position: relative;
  background: #f4f1ec;
  border-radius: 12px;
  padding: 40px 44px;
  width: 100%;
  max-width: 380px;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  text-align: center;
  font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.cnj-pub-login-card::before {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #c9a84c 30%, #e0bf78 50%, #c9a84c 70%, transparent);
  border-radius: 0 0 2px 2px;
}

.cnj-pub-login-logo {
  height: 62px;
  width: auto;
  display: block;
  margin: 0 auto 10px;
}
.cnj-pub-login-wordmark {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 27px;
  font-weight: 600;
  color: #0d1e3a;
  line-height: 1;
  margin-bottom: 2px;
}
.cnj-pub-login-wordmark span {
  display: block;
  font-family: 'Inter', sans-serif;
  font-style: normal;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.28em;
  color: #c9a84c;
  margin-top: 7px;
}
.cnj-pub-login-subtitle {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #b8962e;
  margin: 14px 0 22px;
}
.cnj-pub-login-divider {
  height: 1px;
  background: #e3ddd2;
  margin: 0 0 22px;
}

.cnj-pub-login-form { text-align: left; }
.cnj-pub-login-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #5c6678;
  margin-bottom: 5px;
  text-transform: uppercase;
}
.cnj-pub-login-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 11px 14px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  color: #1a2744;
  background: #fff;
  border: 1px solid #e3ddd2;
  border-radius: 7px;
  margin-bottom: 16px;
  transition: border-color .18s, box-shadow .18s;
  outline: none;
  -webkit-appearance: none;
}
.cnj-pub-login-input::placeholder { color: #9a9384; }
.cnj-pub-login-input:focus {
  border-color: #c9a84c;
  box-shadow: 0 0 0 3px rgba(201,168,76,.18);
  background: #fff;
}

.cnj-pub-login-btn {
  display: block;
  width: 100%;
  padding: 13px;
  background: #0d1e3a;
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  border-radius: 7px;
  cursor: pointer;
  margin-top: 4px;
  transition: background .18s, transform .12s, box-shadow .18s;
}
.cnj-pub-login-btn:hover {
  background: #07111f;
  transform: translateY(-1px);
  box-shadow: 0 8px 22px -8px rgba(13,30,58,.6);
}
.cnj-pub-login-btn:active { transform: translateY(0); }

/* Erro inline (reaproveita a classe .cnj-login-erro do markup) */
.cnj-pub-login-form .cnj-login-erro {
  background: #fde8e8;
  border: 1px solid #f3c0c0;
  color: #922;
  border-radius: 7px;
  padding: 9px 12px;
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 14px;
  text-align: left;
}

.cnj-pub-login-footer {
  position: relative;
  margin-top: 28px;
  font-size: 10px;
  color: rgba(255,255,255,.42);
  letter-spacing: 0.06em;
  text-align: center;
}

/* ── Blindagem: tema/Elementor podem repintar o botão (ex.: rosa/magenta).
   Forçamos navy pelo ID, vencendo o override. ── */
#cnj-login-submit.cnj-pub-login-btn {
  background: #0d1e3a !important;
  color: #fff !important;
  border: none !important;
  text-shadow: none !important;
}
#cnj-login-submit.cnj-pub-login-btn:hover {
  background: #07111f !important;
  color: #fff !important;
}

/* Botão sair no hero */
.cnj-hero-logout {
  display: inline-block;
  margin-top: 10px;
  font-size: .78rem;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 20px;
  padding: 4px 14px;
  transition: background .15s, color .15s;
}
.cnj-hero-logout:hover {
  background: rgba(255,255,255,.15);
  color: #fff;
}

/* ── Google Login Button ── */
.cnj-login-divisor {
  display: flex; align-items: center; gap: 12px;
  margin: 16px 0; color: rgba(255,255,255,.3); font-size: .8rem;
}
.cnj-login-divisor::before,
.cnj-login-divisor::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.1); }
.cnj-google-btn {
  display: flex; align-items: center; gap: 10px; justify-content: center;
  width: 100%; padding: 11px 0;
  background: #fff; border: 1px solid #ddd; border-radius: 8px;
  color: #3c4043; font-size: .88rem; font-weight: 500;
  text-decoration: none; transition: box-shadow .2s, background .2s;
}
.cnj-google-btn:hover { box-shadow: 0 2px 8px rgba(0,0,0,.18); background: #f8f8f8; color: #3c4043; }

/* ── Agenda Google no modal ── */
.cnj-agenda-form { display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.cnj-agenda-form label { font-size: .75rem; color: #5c6678; display: block; margin-bottom: 3px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.cnj-agenda-form input[type="text"],
.cnj-agenda-form input[type="datetime-local"],
.cnj-agenda-form textarea {
  width: 100%; background: #faf7f1; border: 1px solid #d9d1c0;
  border-radius: 6px; color: #1a2744; padding: 8px 10px; font-size: .88rem; box-sizing: border-box;
}
.cnj-agenda-form input:focus, .cnj-agenda-form textarea:focus { outline: none; border-color: #C9A96E; box-shadow: 0 0 0 3px rgba(201,169,110,.15); }
.cnj-agenda-form .cnj-agenda-submit { align-self: flex-start; background: #C9A96E; color: #fff; border: none; border-radius: 6px; padding: 8px 18px; font-size: .88rem; cursor: pointer; font-weight: 600; }
.cnj-agenda-form .cnj-agenda-submit:hover { background: #b8924f; }
.cnj-agenda-form .cnj-agenda-msg { font-size: .8rem; color: #276749; margin-left: 8px; }
.cnj-agenda-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cnj-agenda-eventos { margin-top: 16px; padding-top: 12px; border-top: 1px solid #e7e1d5; }
.cnj-agenda-eventos-titulo { font-size: .7rem; color: #9a9384; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.cnj-agenda-evento { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid #efeae0; align-items: flex-start; }
.cnj-agenda-evento-titulo { font-size: .85rem; color: #1a2744; font-weight: 500; }
.cnj-agenda-evento-data { font-size: .76rem; color: #5c6678; margin-top: 2px; }
.cnj-agenda-no-google { padding: 24px 16px; text-align: center; color: #5c6678; font-size: .88rem; }
.cnj-agenda-no-google a { color: #C9A96E; }

/* ── Agenda: seções e lista de compromissos ── */
.cnj-ag-secao-titulo {
    font-size: .7rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: #9a9384; padding: 14px 16px 6px;
}
.cnj-ag-separador {
    height: 1px; background: #e7e1d5; margin: 4px 0 0;
}
.cnj-ag-loading, .cnj-ag-vazio {
    padding: 16px; font-size: .82rem; color: #9a9384; text-align: center;
}
.cnj-agenda-eventos-lista {
    display: flex; flex-direction: column; max-height: 280px; overflow-y: auto;
}
.cnj-ag-item {
    display: flex; align-items: stretch; gap: 0;
    border-bottom: 1px solid #efeae0;
    transition: background .1s;
}
.cnj-ag-item:hover { background: #faf7f1; }
.cnj-ag-item-passado { opacity: .6; }
.cnj-ag-cor-barra {
    width: 3px; flex-shrink: 0; border-radius: 3px 0 0 3px; margin: 8px 0;
}
.cnj-ag-item-corpo {
    flex: 1; padding: 10px 12px; min-width: 0;
}
.cnj-ag-item-header {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.cnj-ag-item-titulo {
    font-size: .84rem; font-weight: 600; color: #1a2744;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cnj-ag-item-data {
    font-size: .75rem; color: #5c6678; margin-top: 3px;
}
.cnj-ag-item-desc {
    font-size: .74rem; color: #5c6678; margin-top: 3px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cnj-ag-badge {
    font-size: .62rem; font-weight: 800; padding: 1px 6px;
    border-radius: 10px; white-space: nowrap; flex-shrink: 0;
}
.cnj-ag-badge-hoje    { background: #FEF3C7; color: #92400E; }
.cnj-ag-badge-passado { background: #ece7df; color: #8c8676; }
.cnj-ag-link-gcal {
    display: flex; align-items: center; padding: 0 12px;
    font-size: .82rem; color: #C9A96E; text-decoration: none;
    flex-shrink: 0; opacity: 0; transition: opacity .15s;
}
.cnj-ag-item:hover .cnj-ag-link-gcal { opacity: 1; }

/* ── Drive folder link ── */
.cnj-gdrive-link-wrap {
  padding: 6px 0 10px;
  border-bottom: 1px solid #e7e1d5;
  margin-bottom: 8px;
}
.cnj-gdrive-link {
  font-size: .8rem;
  color: #5c6678;
  text-decoration: none;
}
.cnj-gdrive-link:hover { color: #C9A96E; text-decoration: underline; }

/* ── Push badge (dados extraídos do e-mail do tribunal) ── */
.cnj-push-badge {
  font-size: .62rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; padding: 1px 5px; border-radius: 4px;
  background: #FFF7E6; color: #92400E; border: 1px solid #FDE68A;
  margin-left: 6px; vertical-align: middle;
}
.cnj-parte-push { border-left: 3px solid #FDE68A; }

/* ── Processos Vinculados ── */
.cnj-vinculados-wrap {
  margin-top: 20px;
  border-top: 1px solid #e7e1d5;
  padding-top: 14px;
}
.cnj-vinculados-titulo {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: #5c6678; margin-bottom: 10px;
  display: flex; align-items: center; gap: 8px;
}
.cnj-vinculados-count {
  background: #e7e1d5; color: #5c6678; font-size: .68rem;
  font-weight: 800; padding: 1px 7px; border-radius: 10px;
}
.cnj-vinculados-lista {
  display: flex; flex-direction: column; gap: 4px;
}
.cnj-vin-item {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 10px; border-radius: 7px;
  border: 1px solid #e7e1d5; font-size: .8rem;
  transition: all .12s;
}
.cnj-vin-cadastrado {
  cursor: pointer; background: #faf7f1;
}
.cnj-vin-cadastrado:hover {
  background: #f6f0dc; border-color: #e0bf78;
}
.cnj-vin-pendente {
  background: #faf7f1; opacity: .7;
}
.cnj-vin-alias {
  font-size: .66rem; font-weight: 800; padding: 1px 6px;
  border-radius: 4px; background: #eef1f7; color: #1a2d55;
  flex-shrink: 0;
}
.cnj-vin-numero {
  font-family: monospace; font-size: .77rem;
  color: #0d1e3a; font-weight: 500;
}
.cnj-vin-numero-pendente { color: #8c8676; }
.cnj-vin-titulo {
  font-size: .75rem; color: #5c6678;
  flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cnj-vin-novidade {
  font-size: .68rem; font-weight: 700;
  background: #FEF3C7; color: #92400E;
  padding: 1px 6px; border-radius: 8px; flex-shrink: 0;
}
.cnj-vin-tag-pendente {
  font-size: .66rem; color: #8c8676;
  background: #ece7df; padding: 1px 6px; border-radius: 4px;
}

/* ── Kanban de Tarefas (ficha do processo) ── */
.cnj-kanban-wrap { padding: 4px 0; }
.cnj-kanban-header { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.cnj-kanban-nova-btn {
  background: #0d1e3a; color: #fff; border: none; border-radius: 7px;
  padding: 7px 16px; font-size: .82rem; font-weight: 700; cursor: pointer;
  transition: background .12s;
}
.cnj-kanban-nova-btn:hover { background: #1a2d55; }

.cnj-kanban-board {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
@media (max-width: 640px) { .cnj-kanban-board { grid-template-columns: 1fr; } }

.cnj-kanban-col {
  background: #faf7f1; border-radius: 10px; padding: 10px;
  min-height: 120px;
}
.cnj-kanban-col-header {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .74rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; color: #1a2744;
  border-left: 3px solid #e3ddd2; padding-left: 8px;
  margin-bottom: 10px;
}
.cnj-kanban-count {
  background: #e3ddd2; color: #5c6678; font-size: .68rem;
  font-weight: 800; padding: 1px 7px; border-radius: 10px;
}
.cnj-kanban-cards { display: flex; flex-direction: column; gap: 8px; }

.cnj-kanban-card {
  background: #fff; border: 1px solid #e7e1d5; border-radius: 8px;
  padding: 10px 10px 8px; cursor: default;
  transition: box-shadow .12s;
}
.cnj-kanban-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }

.cnj-tk-titulo {
  font-size: .82rem; font-weight: 600; color: #1a2744;
  margin-bottom: 4px; display: flex; gap: 6px; align-items: flex-start;
  flex-wrap: wrap;
}
.cnj-tk-origem {
  font-size: .65rem; background: #f6f0dc; color: #1a2d55;
  padding: 1px 5px; border-radius: 4px; font-weight: 700; flex-shrink: 0;
}
.cnj-tk-desc {
  font-size: .75rem; color: #5c6678; margin-bottom: 6px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.cnj-tk-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 4px; }
.cnj-tk-venc { font-size: .68rem; font-weight: 700; padding: 1px 6px; border-radius: 5px; }
.cnj-tk-venc-red    { background: #FEE2E2; color: #991B1B; }
.cnj-tk-venc-orange { background: #FEF3C7; color: #92400E; }
.cnj-tk-venc-gray   { background: #ece7df; color: #5c6678; }

.cnj-tk-acoes { display: flex; gap: 4px; }
.cnj-tk-btn {
  background: none; border: 1px solid #e7e1d5; border-radius: 5px;
  padding: 2px 6px; font-size: .72rem; cursor: pointer; color: #5c6678;
  transition: all .1s;
}
.cnj-tk-btn:hover { background: #ece7df; color: #1a2744; }
.cnj-tk-excluir:hover { background: #FEE2E2; border-color: #FECACA; color: #991B1B; }

/* Modal tarefa */
.cnj-tk-modal {
  position: absolute; inset: 0; background: rgba(0,0,0,.45);
  z-index: 10; display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
}
.cnj-tk-modal-box {
  background: #fff; border-radius: 12px; padding: 24px;
  width: 340px; max-width: 90%; box-shadow: 0 8px 32px rgba(0,0,0,.18);
  display: flex; flex-direction: column; gap: 12px;
}
.cnj-tk-modal-title { font-size: .95rem; font-weight: 800; color: #1a2744; }
.cnj-tk-input, .cnj-tk-textarea {
  width: 100%; border: 1px solid #d9d1c0; border-radius: 7px;
  padding: 8px 10px; font-size: .82rem; font-family: inherit;
  box-sizing: border-box; color: #1a2744;
}
.cnj-tk-input:focus, .cnj-tk-textarea:focus {
  outline: none; border-color: #0d1e3a; box-shadow: 0 0 0 3px rgba(201,168,76,.22);
}
.cnj-tk-row { display: flex; flex-direction: column; gap: 4px; }
.cnj-tk-label { font-size: .72rem; font-weight: 700; color: #5c6678; text-transform: uppercase; letter-spacing: .05em; }
.cnj-tk-modal-footer { display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px; }
.cnj-tk-btn-salvar {
  background: #0d1e3a; color: #fff; border: none; border-radius: 7px;
  padding: 7px 18px; font-size: .82rem; font-weight: 700; cursor: pointer;
}
.cnj-tk-btn-salvar:hover { background: #1a2d55; }
.cnj-tk-btn-cancelar {
  background: #ece7df; color: #5c6678; border: none; border-radius: 7px;
  padding: 7px 14px; font-size: .82rem; cursor: pointer;
}

/* ── Botão Criar Peça com IA (módulo peças) ─────────────────────── */
.cnj-card-acoes {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
}
.cnj-card-acoes .cnj-card-ver-btn {
  flex: 1;
}
.cnj-card-ia-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, #0d1e3a 0%, #1a3460 100%);
  color: #c9a84c !important;
  text-decoration: none !important;
  font-size: .73rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 6px;
  white-space: nowrap;
  letter-spacing: .02em;
  transition: opacity .15s, transform .1s;
  border: 1px solid #c9a84c40;
}
.cnj-card-ia-btn:hover {
  opacity: .88;
  transform: translateY(-1px);
}

/* ================================================================
   Módulo: Notas — Chat Colaborativo v2.6.1
   ================================================================ */

/* Wrapper geral */
.cnj-chat-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

/* Área de mensagens */
.cnj-chat-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  max-height: 420px;
}

.cnj-chat-loading,
.cnj-chat-erro {
  text-align: center;
  padding: 40px 20px;
  color: #5c6678;
  font-size: 13px;
}

.cnj-chat-erro { color: #991B1B; }

.cnj-chat-vazio {
  text-align: center;
  padding: 40px 20px;
  color: #8c8676;
  font-size: 13px;
  font-style: italic;
}

/* Mensagem individual */
.cnj-msg {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 88%;
  animation: cnj-fade-in .2s ease;
}

@keyframes cnj-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Mensagem própria — alinha à direita */
.cnj-msg.cnj-msg-minha {
  align-self: flex-end;
  flex-direction: row-reverse;
}

/* Avatar circular */
.cnj-msg-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  flex-shrink: 0;
  margin-top: 2px;
}

/* Balão */
.cnj-msg-balao {
  background: #faf7f1;
  border: 1px solid #e7e1d5;
  border-radius: 12px;
  padding: 10px 14px;
  max-width: 100%;
  position: relative;
}

.cnj-msg-minha .cnj-msg-balao {
  background: #f6f0dc;
  border-color: #e0bf78;
}

/* Meta: autor + tipo + data */
.cnj-msg-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 6px;
}

.cnj-msg-autor {
  font-weight: 600;
  font-size: 12px;
  color: #1a2744;
}

.cnj-msg-tipo {
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  padding: 2px 7px;
  border-radius: 20px;
  letter-spacing: .3px;
}

.cnj-msg-data {
  font-size: 11px;
  color: #8c8676;
  margin-left: auto;
}

.cnj-msg-editado {
  font-size: 10px;
  color: #8c8676;
  font-style: italic;
}

/* Ações (editar / excluir) */
.cnj-msg-acoes {
  display: none;
  gap: 4px;
  margin-left: 4px;
}

.cnj-msg:hover .cnj-msg-acoes {
  display: flex;
}

.cnj-msg-acao {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px 4px;
  font-size: 13px;
  border-radius: 4px;
  opacity: .65;
  transition: opacity .15s, background .15s;
}

.cnj-msg-acao:hover {
  opacity: 1;
  background: rgba(0,0,0,.06);
}

/* Corpo da mensagem */
.cnj-msg-corpo {
  font-size: 13px;
  color: #1a2744;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

/* @menção destacada */
.cnj-mencao {
  color: #1a2d55;
  font-weight: 600;
  background: #f6f0dc;
  border-radius: 3px;
  padding: 0 3px;
}

/* Anexo não-imagem */
.cnj-msg-anexo {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  background: #ece7df;
  border: 1px solid #d9d1c0;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 500;
  color: #0d1e3a;
  text-decoration: none;
  transition: background .15s;
}

.cnj-msg-anexo:hover {
  background: #e7e1d5;
}

/* Preview de imagem inline */
.cnj-msg-img {
  max-width: 220px;
  max-height: 160px;
  border-radius: 8px;
  cursor: pointer;
  display: block;
  margin-top: 8px;
  border: 1px solid #e7e1d5;
  transition: transform .15s;
}

.cnj-msg-img:hover {
  transform: scale(1.03);
}

/* Editor inline */
.cnj-edit-inline {
  width: 100%;
  font-size: 13px;
  padding: 6px 8px;
  border: 1px solid #c9a84c;
  border-radius: 6px;
  resize: vertical;
  font-family: inherit;
  line-height: 1.5;
  color: #1a2744;
  background: #fff;
}

.cnj-edit-acoes {
  display: flex;
  gap: 8px;
  margin-top: 6px;
}

.cnj-edit-ok,
.cnj-edit-cancel {
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 6px;
  border: 1px solid #d9d1c0;
  cursor: pointer;
  transition: background .15s;
}

.cnj-edit-ok {
  background: #0d1e3a;
  color: #fff;
  border-color: #0d1e3a;
}

.cnj-edit-ok:hover    { background: #1a2d55; }
.cnj-edit-cancel      { background: #fff; color: #5c6678; }
.cnj-edit-cancel:hover { background: #ece7df; }

/* ---- Composer (área de escrita) ---- */
.cnj-chat-composer {
  border-top: 1px solid #e7e1d5;
  padding: 12px 16px 14px;
  background: #faf7f1;
  flex-shrink: 0;
}

.cnj-chat-tipo-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.cnj-chat-tipo {
  font-size: 12px;
  padding: 4px 8px;
  border: 1px solid #d9d1c0;
  border-radius: 6px;
  background: #fff;
  color: #1a2744;
  cursor: pointer;
}

.cnj-chat-tipo:focus { outline: none; border-color: #c9a84c; }

/* Botão de anexo */
.cnj-chat-anexo-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: 1px solid #d9d1c0;
  background: #fff;
  cursor: pointer;
  color: #5c6678;
  transition: background .15s, color .15s;
}

.cnj-chat-anexo-btn:hover { background: #f6f0dc; color: #1a2d55; border-color: #c9a84c; }
.cnj-chat-anexo-btn svg { width: 16px; height: 16px; }

/* Textarea + dropdown wrapper */
.cnj-chat-textarea-wrap {
  position: relative;
}

.cnj-chat-textarea {
  width: 100%;
  box-sizing: border-box;
  font-size: 13px;
  padding: 8px 12px;
  border: 1px solid #d9d1c0;
  border-radius: 8px;
  resize: vertical;
  font-family: inherit;
  line-height: 1.55;
  color: #1a2744;
  background: #fff;
  transition: border-color .15s;
}

.cnj-chat-textarea:focus {
  outline: none;
  border-color: #c9a84c;
  box-shadow: 0 0 0 3px rgba(201,168,76,.25);
}

/* Dropdown de @menções */
.cnj-mencao-dropdown {
  position: absolute;
  bottom: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #e7e1d5;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  z-index: 9999;
  overflow: hidden;
  max-height: 200px;
  overflow-y: auto;
}

.cnj-mencao-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  cursor: pointer;
  font-size: 13px;
  color: #1a2744;
  transition: background .1s;
}

.cnj-mencao-item:hover,
.cnj-mencao-item.cnj-mencao-ativo {
  background: #f6f0dc;
}

.cnj-mencao-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #0d1e3a;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Preview de arquivo antes de enviar */
.cnj-chat-preview {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f6f0dc;
  border: 1px solid #e0bf78;
  border-radius: 6px;
  padding: 5px 10px;
  margin-top: 6px;
  font-size: 12px;
  color: #0d1e3a;
}

.cnj-chat-prev-nome {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cnj-chat-prev-rm {
  background: none;
  border: none;
  cursor: pointer;
  color: #5c6678;
  font-size: 13px;
  padding: 0 2px;
}

.cnj-chat-prev-rm:hover { color: #DC2626; }

/* Footer do composer */
.cnj-chat-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

.cnj-chat-enviar {
  background: #0d1e3a;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 7px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .1s;
}

.cnj-chat-enviar:hover    { background: #1a2d55; }
.cnj-chat-enviar:active   { transform: scale(.97); }
.cnj-chat-enviar:disabled { background: #8c8676; cursor: not-allowed; }

.cnj-chat-status {
  font-size: 12px;
  font-weight: 500;
}

/* ================================================================
   ÁREA RESTRITA — App shell (top-bar + "Meus Processos" + tabela)
   Remodelagem tela-a-tela p/ bater com o mockup (v3.2.15)
================================================================ */
.cnj-consulta-wrap.cnj-app { background: var(--c-fundo); padding-bottom: 70px; }

/* ---- App top-bar ---- */
.cnj-appbar {
  background: #0d1e3a;
  box-shadow: inset 0 -1px 0 rgba(201,168,76,.45);
}
.cnj-appbar-inner {
  max-width: 1180px; margin: 0 auto;
  display: flex; align-items: center; gap: 22px;
  padding: 0 28px; height: 66px;
}
.cnj-appbar-brand { display: flex; align-items: center; gap: 11px; text-decoration: none; flex-shrink: 0; }
.cnj-appbar-brasao { height: 30px; width: auto; display: block; }
.cnj-appbar-wm { display: flex; flex-direction: column; line-height: 1; }
.cnj-appbar-name {
  font-family: var(--f-disp); font-style: italic; font-weight: 600;
  font-size: 1.18rem; color: #fff; white-space: nowrap;
}
.cnj-appbar-sub {
  font-size: .55rem; font-weight: 600; letter-spacing: .3em;
  text-transform: uppercase; color: var(--c-ouro); margin-top: 4px;
}
.cnj-appbar-nav { display: flex; align-items: center; gap: 26px; margin-left: 30px; padding-left: 30px; height: 100%; border-left: 1px solid rgba(255,255,255,.12); }
.cnj-appbar-link {
  display: inline-flex; align-items: center; height: 100%;
  font-family: var(--f-sans); font-size: .82rem; font-weight: 500;
  color: rgba(255,255,255,.6); text-decoration: none;
  position: relative; transition: color .15s;
}
.cnj-appbar-link:hover { color: #fff; }
.cnj-appbar-link--active { color: #fff; }
.cnj-appbar-link--active::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--c-ouro);
}
.cnj-appbar-user { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.cnj-appbar-avatar {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--c-ouro); color: #07111f;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 700; letter-spacing: .02em;
}
.cnj-appbar-sair {
  font-family: var(--f-sans); font-size: .76rem; font-weight: 600;
  color: rgba(255,255,255,.58); text-decoration: none; transition: color .15s;
}
.cnj-appbar-sair:hover { color: var(--c-ouro-cl); }

/* ---- Main + page header ---- */
.cnj-app-main { max-width: 1180px; margin: 0 auto; padding: 40px 28px 0; }
.cnj-page-head { margin-bottom: 26px; }
.cnj-page-title {
  font-family: var(--f-disp); font-style: italic; font-weight: 600;
  font-size: 2.15rem; line-height: 1.08; color: #0d1e3a; margin: 0 0 7px;
}
.cnj-page-sub { font-size: .9rem; color: var(--c-muted); }
.cnj-page-sub strong { color: #0d1e3a; font-weight: 700; }

/* ---- Toolbar (sobrescreve o painel flutuante antigo) ---- */
.cnj-busca-painel {
  max-width: none; margin: 0 0 18px; padding: 0;
  background: none; border: none; box-shadow: none;
  display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
}
.cnj-busca-row { flex: 1 1 340px; display: flex; gap: 12px; min-width: 0; }
.cnj-busca-campo-wrap {
  flex: 1; min-width: 0; height: 46px;
  background: #fff; border: 1px solid #e3ddd2; border-radius: 10px;
  padding: 0 14px; display: flex; align-items: center; gap: 10px;
}
.cnj-busca-campo-wrap:focus-within {
  border-color: var(--c-ouro); background: #fff;
  box-shadow: 0 0 0 3px rgba(201,168,76,.16);
}
.cnj-busca-input { height: 44px; background: transparent; }
.cnj-busca-tipo-wrap { flex-shrink: 0; }
.cnj-filtros-row { display: flex; gap: 12px; align-items: center; margin: 0; padding: 0; flex-wrap: wrap; }
.cnj-busca-select, .cnj-filtro-select {
  height: 46px; background-color: #fff; border: 1px solid #e3ddd2; border-radius: 10px;
}
.cnj-busca-select:focus, .cnj-filtro-select:focus {
  border-color: var(--c-ouro); box-shadow: 0 0 0 3px rgba(201,168,76,.16);
}
.cnj-filtro-item label {
  font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: #9a8a66;
}
.cnj-filtro-resultados { margin-left: auto; }
.cnj-filtro-resultados span { font-size: .82rem; color: var(--c-muted); }
.cnj-filtro-resultados strong { color: #0d1e3a; }

/* ---- Tabela "Meus Processos" ---- */
.cnj-tabela-wrap {
  background: #fff; border: 1px solid #e3ddd2; border-radius: 12px;
  overflow: hidden; box-shadow: 0 1px 3px rgba(13,30,58,.05);
}
.cnj-tabela { width: 100%; border-collapse: collapse; }
.cnj-th {
  text-align: left; font-family: var(--f-sans);
  font-size: .63rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  color: #9a8a66; padding: 14px 18px; background: #faf7f1;
  border-bottom: 1px solid #ece5d8; white-space: nowrap;
}
.cnj-th-acao { width: 70px; }
.cnj-trow { cursor: pointer; border-bottom: 1px solid #f0ece2; transition: background .12s; }
.cnj-trow:last-child { border-bottom: none; }
.cnj-trow:hover { background: #faf8f3; }
.cnj-trow-novo { box-shadow: inset 3px 0 0 var(--c-ouro); }
.cnj-td { padding: 15px 18px; vertical-align: middle; }
.cnj-td-num .cnj-num {
  font-family: var(--f-mono); font-size: .82rem; font-weight: 700;
  color: #0d1e3a; white-space: nowrap;
}
.cnj-td-trib .cnj-tribunal { font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: #5a6478; }
.cnj-td-assunto { max-width: 380px; }
.cnj-assunto-txt { display: block; font-size: .88rem; font-weight: 500; color: #1a2744; line-height: 1.35; }
.cnj-td-orgao { display: block; font-size: .74rem; color: #8a93a3; margin-top: 2px; }
.cnj-tflag {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 7px;
  font-size: .68rem; font-weight: 700; color: #9a7b1f;
}
.cnj-tflag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--c-ouro); flex-shrink: 0; }
.cnj-td-mov .cnj-data { font-size: .82rem; color: #5a6478; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cnj-td-movnome { display: block; font-size: .73rem; color: #9aa2b0; margin-top: 2px; max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cnj-badge {
  display: inline-block; font-size: .64rem; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; padding: 4px 11px; border-radius: 20px; white-space: nowrap;
}
.cnj-badge--novo      { background: #f0dfa0; color: #7a5e12; }
.cnj-badge--ativo     { background: #dcebe1; color: #1f6b43; }
.cnj-badge--urgente   { background: #FEE2E2; color: #991B1B; }
.cnj-badge--arquivado { background: #ece7dc; color: #897f6b; }
.cnj-td-acao { text-align: right; }
.cnj-lido-btn {
  font-family: var(--f-sans); font-size: .7rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase; color: #9a7b1f;
  background: #f6f0dc; border: 1px solid #e6d49a; border-radius: 7px;
  padding: 6px 13px; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.cnj-lido-btn:hover { background: var(--c-ouro); color: #07111f; border-color: var(--c-ouro); }
.cnj-row-chevron { color: #c2ccd8; font-size: 1.25rem; line-height: 1; }

/* ---- Skeleton em linhas ---- */
.cnj-loading-tab { background: #fff; border: 1px solid #e3ddd2; border-radius: 12px; overflow: hidden; }
.cnj-sk-row {
  display: grid; grid-template-columns: 2fr 1fr 3fr 1.2fr;
  gap: 18px; align-items: center; padding: 18px; border-bottom: 1px solid #f0ece2;
}
.cnj-sk-row:last-child { border-bottom: none; }
.cnj-sk {
  height: 12px; border-radius: 6px;
  background: linear-gradient(90deg,#ece7df 25%,#f6f2ea 50%,#ece7df 75%);
  background-size: 200% 100%; animation: cnj-shimmer 1.4s infinite;
}
.sk-a { width: 80%; } .sk-b { width: 55%; } .sk-c { width: 92%; } .sk-d { width: 60%; }

/* ---- Paginação dentro do app ---- */
.cnj-app .cnj-paginacao { max-width: none; padding: 0; margin: 26px 0 0; justify-content: flex-end; }

/* ---- Banner de novidades (agora dentro do toolbar flow) ---- */
.cnj-app #cnj-contador-novidades { margin: 0 0 18px; }

/* ---- Modal: corpo creme p/ harmonizar com a ficha do mockup ---- */
.cnj-modal-body { background: var(--c-fundo); }
.cnj-andamento-busca-wrap { background: var(--c-fundo); }

/* ---- Responsivo ---- */
@media (max-width: 760px) {
  .cnj-appbar-nav { display: none; }
  .cnj-appbar-inner { padding: 0 16px; }
  .cnj-app-main { padding: 26px 16px 0; }
  .cnj-page-title { font-size: 1.65rem; }
  .cnj-th-trib, .cnj-td-trib, .cnj-th-mov, .cnj-td-mov { display: none; }
  .cnj-td-assunto { max-width: none; }
}

/* ================================================================
   Cursor — restaura o ponteiro do sistema dentro da área restrita.
   Muitos temas de advocacia usam "cursor personalizado" (cursor:none
   global + um pontinho via JS). Quando o isolamento esconde o tema,
   o pontinho some e o ponteiro fica invisível. Reafirmamos o cursor
   nativo aqui, vencendo o `cursor:none` do tema com !important.
================================================================ */
.cnj-consulta-wrap.cnj-app,
.cnj-consulta-wrap.cnj-app *,
#cnj-modal-overlay,
#cnj-modal-overlay * {
  cursor: auto !important;
}
.cnj-consulta-wrap.cnj-app a,
.cnj-consulta-wrap.cnj-app button,
.cnj-consulta-wrap.cnj-app select,
.cnj-consulta-wrap.cnj-app label,
.cnj-consulta-wrap.cnj-app .cnj-trow,
.cnj-consulta-wrap.cnj-app .cnj-trow *,
.cnj-consulta-wrap.cnj-app .cnj-lido-btn,
.cnj-consulta-wrap.cnj-app .cnj-appbar-link,
.cnj-consulta-wrap.cnj-app .cnj-modal-tab,
.cnj-consulta-wrap.cnj-app .cnj-dm-item,
.cnj-consulta-wrap.cnj-app .cnj-dm-item *,
#cnj-modal-overlay a,
#cnj-modal-overlay button,
#cnj-modal-overlay .cnj-modal-tab {
  cursor: pointer !important;
}
.cnj-consulta-wrap.cnj-app input[type="text"],
.cnj-consulta-wrap.cnj-app textarea,
#cnj-modal-overlay input[type="text"],
#cnj-modal-overlay textarea {
  cursor: text !important;
}
/* Garante que nada do app perca a captura de clique */
.cnj-consulta-wrap.cnj-app,
.cnj-consulta-wrap.cnj-app * { pointer-events: auto; }

/* ================================================================
   CAUSA RAIZ (v3.2.21) — Temas com menu fixo costumam ter
   `nav{position:fixed}` (ou header/section). Essa regra captura a
   NOSSA <nav> da appbar, tira do fluxo e a estica por cima da
   tabela, engolindo cliques (cursor em seta, nada clica).
   Reancoramos os elementos semânticos do app em position:relative,
   vencendo o tema. O modal (#cnj-modal-overlay) é um <div> e mantém
   seu position:fixed próprio — não é afetado.
================================================================ */
.cnj-consulta-wrap.cnj-app header,
.cnj-consulta-wrap.cnj-app nav,
.cnj-consulta-wrap.cnj-app main,
.cnj-consulta-wrap.cnj-app section,
.cnj-consulta-wrap.cnj-app aside,
.cnj-consulta-wrap.cnj-app footer {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  float: none !important;
}

/* ================================================================
   CRUD da área restrita (v3.2.22) — Incluir / Arquivar / Restaurar
================================================================ */
/* Cabeçalho da página com botão à direita */
.cnj-page-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
}
.cnj-incluir-btn {
  flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--f-sans); font-size: .84rem; font-weight: 600;
  letter-spacing: .02em;
  color: #07111f; background: var(--c-ouro);
  border: 1px solid var(--c-ouro); border-radius: 9px;
  padding: 11px 19px; cursor: pointer;
  transition: background .15s, box-shadow .15s, transform .05s;
  box-shadow: 0 2px 10px rgba(201,168,76,.28);
}
.cnj-incluir-btn:hover { background: var(--c-ouro-cl); box-shadow: 0 4px 16px rgba(201,168,76,.36); }
.cnj-incluir-btn:active { transform: translateY(1px); }
.cnj-incluir-btn-ico { font-size: 1.12rem; line-height: 1; font-weight: 700; }

/* Linha arquivada na tabela — levemente esmaecida */
.cnj-trow-arq { opacity: .72; }
.cnj-trow-arq:hover { opacity: 1; }
.cnj-badge--arquivado { background: #e7e2d6; color: #6a624f; }

/* Botões Arquivar/Restaurar no cabeçalho da ficha */
.cnj-modal-btn-arquivar, .cnj-modal-btn-restaurar {
  font-family: var(--f-sans); font-size: .78rem; font-weight: 600;
  padding: 6px 12px; border-radius: 7px; cursor: pointer;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.92);
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.cnj-modal-btn-arquivar:hover { background: rgba(153,27,27,.9); border-color: rgba(153,27,27,.9); color: #fff; }
.cnj-modal-btn-restaurar:hover { background: var(--c-ouro); border-color: var(--c-ouro); color: #07111f; }

/* ---- Modal de inclusão ---- */
.cnj-incluir-box {
  background: #fff; width: 100%; max-width: 560px;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 70px rgba(7,17,31,.4);
  border-top: 4px solid var(--c-ouro);
  animation: cnj-incluir-in .22s ease;
}
@keyframes cnj-incluir-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.cnj-incluir-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px 16px; background: #0d1e3a;
}
.cnj-incluir-title {
  font-family: var(--f-disp); font-style: italic; font-weight: 600;
  font-size: 1.5rem; color: #fff; margin: 0;
}
.cnj-incluir-header .cnj-modal-fechar { color: rgba(255,255,255,.7); }
.cnj-incluir-body { padding: 24px; }
.cnj-incluir-label {
  display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .12em; color: #9a7b1f; margin-bottom: 8px;
}
.cnj-incluir-input {
  width: 100%; box-sizing: border-box;
  font-family: var(--f-mono); font-size: 1.05rem; letter-spacing: .02em;
  color: var(--c-texto); background: var(--c-fundo);
  border: 1.5px solid var(--c-borda); border-radius: 9px;
  padding: 13px 15px; transition: border-color .15s, box-shadow .15s, background .15s;
}
.cnj-incluir-input:focus {
  outline: none; border-color: var(--c-ouro); background: #fff;
  box-shadow: 0 0 0 3px rgba(201,168,76,.16);
}
.cnj-incluir-hint { font-size: .76rem; color: #8a93a3; margin-top: 8px; }
.cnj-incluir-trib { margin-top: 16px; font-size: .82rem; }
.cnj-incluir-trib > summary {
  cursor: pointer; color: #5a6478; list-style: none;
  display: inline-flex; align-items: center; gap: 6px;
}
.cnj-incluir-trib > summary::-webkit-details-marker { display: none; }
.cnj-incluir-trib-corrigir { color: var(--c-ouro); font-weight: 600; }
.cnj-incluir-select {
  width: 100%; box-sizing: border-box; margin-top: 10px;
  font-family: var(--f-sans); font-size: .88rem; color: var(--c-texto);
  background: var(--c-fundo); border: 1.5px solid var(--c-borda);
  border-radius: 8px; padding: 10px 12px;
}
.cnj-incluir-select:focus { outline: none; border-color: var(--c-ouro); box-shadow: 0 0 0 3px rgba(201,168,76,.16); }
.cnj-incluir-erro {
  margin-top: 16px; padding: 11px 14px; border-radius: 8px;
  background: var(--c-red-ll); color: var(--c-red);
  font-size: .82rem; border: 1px solid rgba(153,27,27,.2);
}
.cnj-incluir-acoes {
  display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px;
}
.cnj-incluir-btn-pri, .cnj-incluir-btn-sec {
  font-family: var(--f-sans); font-size: .85rem; font-weight: 600;
  padding: 11px 20px; border-radius: 8px; cursor: pointer; transition: all .15s;
}
.cnj-incluir-btn-pri {
  background: #0d1e3a; color: #fff; border: 1px solid #0d1e3a;
}
.cnj-incluir-btn-pri:hover { background: #13294a; }
.cnj-incluir-btn-pri:disabled { opacity: .6; cursor: default; }
.cnj-incluir-btn-sec {
  background: #fff; color: #5a6478; border: 1.5px solid var(--c-borda);
}
.cnj-incluir-btn-sec:hover { border-color: #c2ccd8; color: var(--c-texto); }

/* ---- Pré-visualização (passo 2) ---- */
.cnj-prev-classe {
  font-family: var(--f-disp); font-style: italic; font-weight: 600;
  font-size: 1.4rem; color: #0d1e3a; margin-bottom: 16px; line-height: 1.15;
}
.cnj-prev-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px;
  padding: 16px; background: var(--c-fundo); border: 1px solid var(--c-borda);
  border-radius: 10px;
}
.cnj-prev-cell { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cnj-prev-lbl { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #9a7b1f; }
.cnj-prev-val { font-size: .9rem; color: var(--c-texto); overflow-wrap: anywhere; }
.cnj-prev-mono { font-family: var(--f-mono); font-weight: 600; letter-spacing: .02em; }
.cnj-prev-partes { margin-top: 14px; display: flex; flex-direction: column; gap: 10px; }
.cnj-prev-polo { display: flex; flex-direction: column; gap: 4px; }
.cnj-prev-polo-lbl { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #5a6478; }
.cnj-prev-polo-nomes { font-size: .86rem; color: var(--c-texto); }
.cnj-prev-mov {
  margin-top: 14px; font-size: .82rem; color: #5a6478;
  padding-top: 14px; border-top: 1px solid var(--c-borda);
}
.cnj-prev-mov-lbl { display: block; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #9a7b1f; margin-bottom: 4px; }
.cnj-prev-mov-data { font-family: var(--f-mono); font-weight: 600; color: var(--c-texto); }
.cnj-prev-aviso {
  padding: 12px 14px; border-radius: 8px; margin-bottom: 16px;
  background: var(--c-laranja-ll, #f6f0dc); color: #7a5e12;
  font-size: .82rem; border: 1px solid rgba(201,168,76,.3);
}
.cnj-prev-aviso--erro { background: var(--c-red-ll); color: var(--c-red); border-color: rgba(153,27,27,.2); }
.cnj-prev-dup { display: flex; gap: 14px; align-items: flex-start; font-size: .9rem; color: var(--c-texto); }
.cnj-prev-dup-ico {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: var(--c-ouro); color: #07111f; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem;
}

/* ---- Toast ---- */
.cnj-crud-toast {
  position: fixed; left: 50%; bottom: 30px; transform: translate(-50%, 20px);
  background: #0d1e3a; color: #fff; font-family: var(--f-sans); font-size: .86rem;
  font-weight: 500; padding: 13px 22px; border-radius: 10px;
  box-shadow: 0 10px 34px rgba(7,17,31,.4); border-bottom: 2px solid var(--c-ouro);
  z-index: 100001; opacity: 0; transition: opacity .28s, transform .28s; pointer-events: none;
}
.cnj-crud-toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 600px) {
  .cnj-prev-grid { grid-template-columns: 1fr; }
  .cnj-incluir-box { max-width: 100%; }
}
