/* =========================================================
   Sistema do Gabinete — TJRJ / PJERJ
   Visual "Portal TJRJ": card flutuante, azul institucional,
   Manrope/Spectral, cantos arredondados e sombras suaves.
   Estrutura/JS preservados — apenas a pele mudou.
   ========================================================= */

:root {
  /* Paleta do design Portal TJRJ */
  --bg: #0f2b66;
  --side1: #16356f;
  --side2: #0f2657;
  --btn: #143071;
  --btnH: #1a3c84;
  --hero1: #214c98;
  --hero2: #143071;
  --accent: #2f6fd6;
  --ink: #16243f;
  --muted: #69748c;
  --line: #e7ecf4;
  --field: #f2f6fc;
  --field-bd: #e4ebf5;

  /* Compatibilidade com regras legadas (mesmos nomes, novos valores) */
  --azul-900: #0f2b66;
  --azul-800: #16356f;
  --azul-700: #143071;
  --azul-600: #1a3c84;
  --azul-500: #2f6fd6;
  --azul-100: #e9f1fd;
  --azul-50:  #f2f6fc;

  --ouro: #2f6fd6;            /* o "dourado" antigo agora é o azul de destaque */

  --cinza-900: #16243f;
  --cinza-700: #44505f;
  --cinza-600: #69748c;
  --cinza-500: #7a8699;
  --cinza-300: #e4ebf5;
  --cinza-200: #e7ecf4;
  --cinza-100: #f2f6fc;
  --branco: #ffffff;

  --verde: #1f9d57;
  --verde-bg: #e6f6ec;
  --amarelo: #b8860b;
  --amarelo-bg: #fcf3da;
  --vermelho: #c0392b;
  --vermelho-bg: #fbeae8;

  --sombra: 0 6px 18px rgba(10, 30, 80, .07);
  --sombra-forte: 0 24px 70px rgba(6, 18, 55, .28);

  --raio: 14px;
  --raio-sm: 11px;
  --raio-lg: 18px;
  --raio-xl: 24px;

  --fonte: "Manrope", system-ui, "Segoe UI", Roboto, Arial, sans-serif;
  --fonte-titulo: "Manrope", system-ui, sans-serif;
  --fonte-serif: "Spectral", Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: var(--fonte);
  color: var(--ink);
  background: var(--bg);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button { font-family: inherit; }
[hidden] { display: none !important; }
::placeholder { color: #9aa6bd; }

.marca-serif { font-family: var(--fonte-serif); }

/* SVGs como ícones de linha por padrão */
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ===================== BOTÕES ===================== */
.btn {
  border: none;
  border-radius: var(--raio-sm);
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: filter .15s, background .18s, box-shadow .15s, transform .12s;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--btn); color: #fff; }
.btn-primary:hover { background: var(--btnH); }
.btn-secundario { background: var(--field); color: var(--ink); border: 1px solid var(--field-bd); }
.btn-secundario:hover { background: #e8f0fb; border-color: #cfdcf0; }
.btn-perigo { background: var(--vermelho-bg); color: var(--vermelho); }
.btn-perigo:hover { background: #f6d8d4; }
.btn-bloco { width: 100%; padding: 0 22px; height: 55px; font-size: 16px; margin-top: 6px; border-radius: 13px; }
.btn-link {
  background: transparent; color: var(--accent);
  padding: 9px 10px; text-decoration: none; font-weight: 600;
}
.btn-link:hover { color: var(--btnH); text-decoration: underline; }
.btn-mini {
  padding: 6px 9px; font-size: 12.5px; border-radius: 8px;
  background: var(--field); color: var(--ink); border: 1px solid var(--field-bd);
}
.btn-mini:hover { background: #e8f0fb; }
.btn-mini.perigo { color: var(--vermelho); }
.btn-mini.perigo:hover { background: var(--vermelho-bg); }
.btn-mini.ok { background: var(--verde-bg); color: #15723f; border-color: #c6e9d2; }
.btn-mini.ok:hover { background: #d6f0e0; }

/* Foco visível por teclado (acessibilidade) */
:where(.btn, .btn-mini, .btn-link, .nav-item, .usuario-btn, .usuario-dropdown button, .modal-fechar, .tabela th.ordenavel, .ci-olho, .topo-sino, .menu-toggle):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}

/* ===================== LOGIN (split-screen card) ===================== */
.tela-login {
  min-height: 100vh;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  padding: 26px;
}
.login-card {
  display: flex;
  width: 100%; max-width: 1180px; min-height: 660px;
  background: #fff; border-radius: 28px; overflow: hidden;
  box-shadow: 0 40px 100px rgba(6, 18, 55, .5);
}

/* Painel do formulário (esquerda) */
.login-form-panel {
  width: 46%; flex: none;
  padding: 54px 56px 46px;
  display: flex; flex-direction: column;
}
.marca-lockup { display: flex; align-items: center; gap: 14px; }
.marca-brasao {
  width: 54px; height: 54px; border-radius: 13px; flex: none;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: linear-gradient(150deg, var(--side1), var(--side2));
}
.marca-brasao img { width: 100%; height: 100%; object-fit: contain; padding: 7px; }
.marca-textos { display: flex; flex-direction: column; }
.marca-l1 { font-size: 18px; font-weight: 600; letter-spacing: .02em; color: var(--ink); line-height: 1.1; }
.marca-l2 { font-size: 10px; font-weight: 500; letter-spacing: .13em; color: var(--muted); margin-top: 3px; }

.login-centro { flex: 1; display: flex; flex-direction: column; justify-content: center; max-width: 400px; margin: 0 auto; width: 100%; }
.login-hero-logo { display: flex; justify-content: center; margin-bottom: 16px; }
.login-hero-logo img {
  width: 92px; height: 92px; object-fit: contain;
  filter: drop-shadow(0 10px 26px rgba(47, 111, 214, .30));
}
.login-titulo {
  margin: 0; font-size: 33px; line-height: 1.05; font-weight: 800;
  color: var(--ink); letter-spacing: .04em; text-align: center;
}
.login-subnome {
  margin: 7px 0 0; font-size: 13.5px; font-weight: 700; letter-spacing: .28em;
  color: var(--accent); text-transform: uppercase; text-align: center;
}
.login-bemvindo { margin: 16px 0 0; font-size: 15px; line-height: 1.55; color: var(--muted); text-align: center; }
.login-centralizado #link-esqueci { align-self: center; }
.aviso-restrito.aviso-forte {
  text-align: left; background: #fff4e5; border: 1px solid #f1c98c; color: #7a5200;
  font-size: 12px; line-height: 1.5;
}
.aviso-restrito.aviso-forte strong { color: #b3560a; }
[data-theme="dark"] .aviso-restrito.aviso-forte { background: rgba(184, 134, 11, .18); border-color: rgba(184, 134, 11, .4); color: #f0cf7a; }
[data-theme="dark"] .aviso-restrito.aviso-forte strong { color: #f6b65a; }

.form-auth { display: flex; flex-direction: column; gap: 15px; margin-top: 30px; }
.setup-aviso {
  background: var(--field); border: 1px solid var(--field-bd);
  color: var(--ink); padding: 11px 13px; border-radius: 11px;
  font-size: 13.5px; margin: 0;
}

/* Campo com ícone (login) */
.campo-icone { position: relative; }
.campo-icone .ci-icon {
  position: absolute; left: 17px; top: 50%; transform: translateY(-50%);
  display: flex; color: #9aa6bd; pointer-events: none;
}
.campo-icone .ci-icon svg { width: 19px; height: 19px; }
.campo-icone input {
  width: 100%; height: 55px; border: 1.6px solid var(--field-bd); background: var(--field);
  border-radius: 13px; padding: 0 16px 0 46px; font-size: 15px; color: var(--ink);
  outline: none; transition: border-color .15s, box-shadow .15s, background .15s;
}
.campo-icone input:focus {
  border-color: var(--accent); background: #fff;
  box-shadow: 0 0 0 4px rgba(47, 111, 214, .12);
}
.campo-icone:has(.ci-olho) input { padding-right: 50px; }
.ci-olho {
  position: absolute; right: 9px; top: 50%; transform: translateY(-50%);
  width: 38px; height: 38px; border: none; background: transparent; cursor: pointer;
  color: #9aa6bd; display: flex; align-items: center; justify-content: center;
  border-radius: 9px; transition: background .15s, color .15s;
}
.ci-olho svg { width: 19px; height: 19px; }
.ci-olho:hover { background: var(--field); color: var(--ink); }
.ci-olho.ativo { color: var(--accent); }

.btn-entrar { display: flex; align-items: center; justify-content: space-between; }
.btn-entrar .seta-entrar { width: 20px; height: 20px; stroke-width: 1.9; }
#link-esqueci { align-self: flex-start; margin-top: 6px; }

.form-erro {
  display: flex; align-items: center; gap: 8px;
  background: var(--vermelho-bg); color: var(--vermelho); border: 1px solid #f6c9c4;
  padding: 10px 13px; border-radius: 10px; font-size: 13.5px;
  animation: shake .4s ease;
}
@keyframes shake { 10%,90%{transform:translateX(-1px);} 20%,80%{transform:translateX(2px);} 30%,50%,70%{transform:translateX(-5px);} 40%,60%{transform:translateX(5px);} }

.aviso-restrito {
  margin: 4px 0 0; font-size: 11.5px; color: var(--muted);
  background: var(--field); border: 1px solid var(--field-bd);
  border-radius: 10px; padding: 9px 11px; line-height: 1.45;
}
.login-rodape { color: var(--muted); font-size: 12px; margin: 18px 0 0; text-align: center; }

/* Painel da foto (direita) */
.login-foto {
  flex: 1; position: relative; min-height: 560px; overflow: hidden;
  background-color: var(--bg);
  background-image: url('../img/login-bg.jpg');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.login-foto-overlay { display: none; }
.login-foto-glow { display: none; }

/* Campos genéricos (modais usam .campo) */
.campo { display: block; margin-bottom: 14px; }
.campo > span { display: block; font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.campo input, .campo select, .campo textarea {
  width: 100%; padding: 11px 13px; font-size: 14.5px;
  border: 1.5px solid var(--field-bd); border-radius: var(--raio-sm);
  background: var(--field); color: var(--ink); transition: border-color .15s, box-shadow .15s, background .15s;
}
.campo input:focus, .campo select:focus, .campo textarea:focus {
  outline: none; border-color: var(--accent); background: #fff;
  box-shadow: 0 0 0 4px rgba(47, 111, 214, .12);
}
.campo textarea { resize: vertical; min-height: 72px; }

/* ===================== APP: card flutuante ===================== */
.layout { min-height: 100vh; background: var(--bg); padding: 18px; }
.app-card {
  position: relative;
  display: flex; width: 100%; height: calc(100vh - 36px);
  background: #fff; border-radius: 24px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(6, 18, 55, .45);
}
.sb-overlay { position: absolute; inset: 0; z-index: 50; background: rgba(8, 18, 45, .45); }

/* ===================== SIDEBAR ===================== */
.sidebar {
  width: 264px; flex: none;
  background: linear-gradient(180deg, var(--side1), var(--side2));
  color: #fff; display: flex; flex-direction: column; padding: 24px 18px 20px;
}
.sb-marca { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 9px; padding: 4px 6px 0; }
.sb-brasao {
  width: 52px; height: 52px; flex: none; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.sb-logo { width: 100%; height: 100%; object-fit: contain; }
.sb-textos { display: flex; flex-direction: column; align-items: center; line-height: 1.25; min-width: 0; }
.sb-marca .topo-nome { font-size: 14.5px; font-weight: 800; color: #fff; line-height: 1.25; text-transform: uppercase; letter-spacing: .04em; }
.sb-marca .topo-sub { font-size: 12.5px; font-weight: 600; color: rgba(255, 255, 255, .86); letter-spacing: .03em; margin-top: 3px; }
.sb-marca .topo-sub:empty { display: none; }

.topo-nav { margin-top: 54px; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.nav-item {
  display: flex; align-items: center; gap: 13px; width: 100%;
  border: none; cursor: pointer; border-radius: 12px; padding: 12px 13px;
  font-size: 14.5px; font-family: inherit; color: rgba(255, 255, 255, .8);
  text-align: left; background: transparent;
  transition: background .15s, color .15s, box-shadow .15s;
}
.nav-item .nav-ic { display: flex; flex: none; }
.nav-item .nav-ic svg { width: 20px; height: 20px; }
.nav-item .nav-label { flex: 1; text-transform: uppercase; letter-spacing: .02em; font-size: 13px; }
.nav-item:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.nav-item.ativo { background: #fff; color: var(--ink); box-shadow: 0 10px 26px rgba(8, 26, 74, .22); }
.nav-item.ativo .nav-label { font-weight: 700; }
.nav-item.ativo .nav-ic svg { stroke: var(--accent); }

.sb-rodape { font-size: 11px; color: rgba(255, 255, 255, .62); padding: 0 8px; line-height: 1.5; text-align: center; }

/* ===================== MAIN / HEADER ===================== */
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; background: #fff; }
.topbar { display: flex; align-items: center; gap: 18px; padding: 20px 28px; flex: none; }
.menu-toggle {
  display: none; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 11px; border: 1px solid var(--line);
  background: #fff; cursor: pointer; color: var(--ink); flex: none;
}
.menu-toggle svg { width: 20px; height: 20px; stroke-width: 1.8; }

/* Botão de recolher o menu (desktop) */
.btn-recolher {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 11px; border: 1px solid var(--line);
  background: #fff; cursor: pointer; color: var(--ink); flex: none;
}
.btn-recolher:hover { background: var(--field); }
.btn-recolher svg { width: 20px; height: 20px; stroke-width: 1.9; }
.btn-recolher .ic-recolher { transition: transform .2s; }
#app:not(.fixado) .ic-recolher { transform: rotate(180deg); }
[data-theme="dark"] .btn-recolher { background: #161d27; color: var(--ink); border-color: var(--field-bd); }
[data-theme="dark"] .btn-recolher:hover { background: #11181f; }

/* Separador entre "Adicionar" e os demais botões */
.acoes-sep { width: 1px; align-self: stretch; background: var(--line); margin: 2px 5px; min-height: 24px; }

/* Barra de busca + botão FILTRO */
.barra-filtro { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }
.barra-filtro .filtro-busca { flex: 1; min-width: 220px; }
.btn-filtro { display: inline-flex; align-items: center; gap: 7px; flex: none; }
.btn-filtro .ic-filtro { width: 16px; height: 16px; }
.btn-filtro.ativo { background: var(--azul-100); color: var(--accent); border-color: #cfdcf0; }
[data-theme="dark"] .btn-filtro.ativo { background: rgba(47,111,214,.28); color: #cfe0fb; border-color: var(--field-bd); }

/* Botão "Gerar" com leque (PDF / CSV) */
.gerar-wrap { position: relative; display: inline-flex; }
.btn-gerar { display: inline-flex; align-items: center; gap: 6px; }
.btn-gerar svg { width: 15px; height: 15px; }
.gerar-menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 30;
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 18px 50px rgba(10, 30, 80, .2); padding: 6px; min-width: 184px;
  animation: popIn .16s ease;
}
.gerar-menu button {
  display: flex; align-items: center; gap: 9px; width: 100%; border: none; background: transparent;
  cursor: pointer; padding: 10px 11px; border-radius: 9px; font-family: inherit;
  font-size: 13.5px; color: var(--ink); text-align: left; transition: background .15s;
}
.gerar-menu button:hover { background: var(--field); }
.gerar-menu button svg {
  width: 16px; height: 16px; flex: none; color: var(--accent);
  background: var(--azul-100); border-radius: 8px; padding: 6px; box-sizing: content-box; stroke-width: 1.8;
}
[data-theme="dark"] .gerar-menu { background: #1e2733; border-color: var(--field-bd); }
[data-theme="dark"] .gerar-menu button:hover { background: var(--azul-50); }
[data-theme="dark"] .gerar-menu button svg { background: rgba(47, 111, 214, .22); }

/* Chips de categoria — Prova MP / Defesa */
.chip-cat-prova_mp { background: #efe3fb; color: #6b29b8; }
.chip-cat-prova_defesa { background: #e0f2f1; color: #0d7d6b; }
[data-theme="dark"] .chip-cat-prova_mp { background: rgba(124, 92, 255, .24); color: #d8c7ff; }
[data-theme="dark"] .chip-cat-prova_defesa { background: rgba(13, 148, 136, .26); color: #7fe0d4; }

/* Campo destacado "antes de salvar" (data/hora de finalização) */
.campo.pre-salvar { background: var(--field); border: 1px solid var(--field-bd); border-left: 4px solid var(--accent); border-radius: 12px; padding: 12px 14px; }
.campo.pre-salvar > span { color: var(--accent); font-weight: 700; }

/* Separador dentro do modal (mídias) */
.modal-sep { height: 1px; background: var(--line); margin: 18px 0 14px; }

/* Grupo "Painel" (leque de itens de administrador) — separado das demais abas */
.nav-grupo { display: flex; flex-direction: column; margin-top: 16px; }
.nav-grupo-cab {
  display: flex; align-items: center; gap: 13px; width: 100%; border: none; cursor: pointer;
  border-radius: 12px; padding: 12px 13px; font-size: 14.5px; font-family: inherit;
  color: rgba(255, 255, 255, .8); text-align: left; background: transparent;
  transition: background .15s, color .15s;
}
.nav-grupo-cab:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.nav-grupo-cab .nav-ic { display: flex; flex: none; }
.nav-grupo-cab .nav-ic svg { width: 20px; height: 20px; }
.nav-grupo-cab .nav-label { flex: 1; text-transform: uppercase; letter-spacing: .02em; }
.nav-grupo-cab .nav-grupo-seta { display: flex; transition: transform .2s; }
.nav-grupo-cab .nav-grupo-seta svg { width: 16px; height: 16px; }
.nav-grupo-cab.aberto { color: #fff; }
.nav-grupo-cab.aberto .nav-grupo-seta { transform: rotate(180deg); }
.nav-sub { display: flex; flex-direction: column; gap: 3px; margin: 3px 0 4px 12px; padding-left: 9px; border-left: 1px solid rgba(255, 255, 255, .16); }
.nav-sub:not([hidden]) { animation: fadeUp .18s ease-out; }
.nav-sub-item { font-size: 13px; padding: 9px 12px; }

/* Perfil (saudação + dropdown) */
.perfil-wrap { position: relative; flex: none; }
.usuario-btn {
  display: flex; align-items: center; gap: 10px; border: none; background: transparent;
  cursor: pointer; padding: 5px 8px; border-radius: 11px; font-family: inherit;
  transition: background .15s;
}
.usuario-btn:hover { background: var(--field); }
.usuario-avatar {
  width: 38px; height: 38px; border-radius: 11px; flex: none;
  background: var(--accent); color: #fff; font-weight: 700; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
}
.perfil-textos { display: flex; flex-direction: column; text-align: left; }
.saudacao { font-size: 16px; font-weight: 700; color: var(--ink); }
.perfil-sub { font-size: 12.5px; color: var(--muted); }
.usuario-btn .seta { display: flex; color: var(--muted); }
.usuario-btn .seta svg { width: 15px; height: 15px; stroke-width: 2; }

.usuario-dropdown {
  position: absolute; left: 0; top: calc(100% + 8px); z-index: 61;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 18px 50px rgba(10, 30, 80, .2); padding: 8px; width: 232px;
  animation: popIn .16s ease;
}
@keyframes popIn { from { transform: translateY(7px); opacity: .6; } to { transform: none; opacity: 1; } }
.dd-cabecalho { padding: 6px 11px 8px; font-weight: 800; font-size: 13.5px; color: var(--ink); }
.dd-cabecalho .usuario-nome:empty::after { content: 'Minha conta'; color: var(--muted); font-weight: 600; }
.usuario-dropdown button {
  display: flex; align-items: center; gap: 10px; width: 100%; border: none; background: transparent;
  cursor: pointer; padding: 10px 11px; border-radius: 9px; font-family: inherit;
  font-size: 13.5px; color: var(--ink); text-align: left; transition: background .15s;
}
.usuario-dropdown button svg { width: 17px; height: 17px; flex: none; }
.usuario-dropdown button:hover { background: var(--field); }
.usuario-dropdown .dd-sair { color: var(--vermelho); }
.usuario-dropdown .dd-sair:hover { background: var(--vermelho-bg); }
.dd-divisor { height: 1px; background: var(--line); margin: 6px 4px; }

/* Botão de tema (sol/lua) ao lado do sino */
.btn-tema .ic-sol { display: none; }
html[data-theme="dark"] .btn-tema .ic-lua { display: none; }
html[data-theme="dark"] .btn-tema .ic-sol { display: block; }

.topbar-dir { display: flex; align-items: center; gap: 10px; flex: none; margin-left: auto; }
.topo-sino {
  position: relative; width: 42px; height: 42px; border-radius: 12px;
  border: 1px solid var(--line); background: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: var(--ink);
  transition: background .15s;
}
.topo-sino svg { width: 19px; height: 19px; }
.topo-sino:hover { background: var(--field); }
.topo-sino.tem-novas { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(47, 111, 214, .15); }
.sino-badge {
  position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px;
  border-radius: 9px; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; padding: 0 5px;
}

/* ===================== CONTEÚDO ===================== */
.conteudo { flex: 1; min-height: 0; overflow: auto; padding: 6px 28px 30px; position: relative; z-index: 1; }
.view-cabecalho {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin: 14px 0 18px; flex-wrap: wrap;
}
.view-cabecalho h2 { margin: 0; font-size: 22px; font-weight: 800; color: var(--ink); letter-spacing: .01em; text-transform: uppercase; }
.acoes-topo { display: flex; gap: 8px; flex-wrap: wrap; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.view:not([hidden]) { animation: fadeUp .22s ease-out; }

/* ===== Cards de resumo ===== */
.cards-resumo { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.card-resumo {
  background: #fff; border: 1px solid var(--line); border-radius: var(--raio-lg);
  padding: 16px 20px; box-shadow: var(--sombra); min-width: 140px; border-left: 4px solid var(--accent);
}
.card-resumo .valor { font-size: 26px; font-weight: 800; color: var(--ink); }
.card-resumo .rotulo { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.card-resumo.pendente { border-left-color: var(--amarelo); }
.card-resumo.andamento { border-left-color: var(--accent); }
.card-resumo.concluido { border-left-color: var(--verde); }
.card-resumo.preso { border-left-color: var(--vermelho); }

/* ===== Filtros ===== */
.filtros {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
  background: #fff; padding: 14px 16px; border: 1px solid var(--line);
  border-radius: var(--raio-lg); box-shadow: var(--sombra); margin-bottom: 16px;
}
.filtro, .filtro-busca {
  padding: 10px 13px; font-size: 13.5px; border: 1.5px solid var(--field-bd);
  border-radius: var(--raio-sm); background: var(--field); color: var(--ink);
}
.filtro:focus, .filtro-busca:focus {
  outline: none; border-color: var(--accent); background: #fff; box-shadow: 0 0 0 4px rgba(47, 111, 214, .1);
}
.filtro-busca { flex: 1; min-width: 220px; }
.filtro-data { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); }
.filtro-data input { padding: 8px 10px; border: 1.5px solid var(--field-bd); border-radius: var(--raio-sm); font-size: 13px; background: var(--field); }
.filtro-check { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink); white-space: nowrap; }
.filtro-check input { width: 16px; height: 16px; accent-color: var(--accent); }

/* ===== Tabela ===== */
.tabela-wrap {
  background: #fff; border: 1px solid var(--line); border-radius: var(--raio-lg);
  box-shadow: var(--sombra); overflow: hidden; overflow-x: auto;
}
.tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabela thead th {
  background: var(--field); color: var(--muted); text-align: left; font-weight: 700;
  padding: 11px 10px; border-bottom: 1px solid var(--line);
  text-transform: uppercase; font-size: 11px; letter-spacing: .02em; line-height: 1.25;
}
.tabela thead th.num { text-align: right; }
.tabela th.ordenavel { cursor: pointer; user-select: none; }
.tabela th.ordenavel:hover { background: #e9f1fd; color: var(--accent); }
.tabela th.ordenavel .ind { font-size: 10px; opacity: .9; margin-left: 4px; color: var(--accent); }
.tabela tbody td { padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tabela tbody tr:last-child td { border-bottom: none; }
.tabela tbody tr:hover { background: var(--field); }
.tabela td.num { text-align: right; font-variant-numeric: tabular-nums; }
.col-acoes, td.acoes { white-space: nowrap; width: 1%; }
td.acoes { display: flex; gap: 6px; }
.obs-celula { max-width: 220px; white-space: pre-wrap; word-break: break-word; }
.vazio { padding: 34px; text-align: center; color: var(--muted); font-size: 14px; }

/* ===== Etiquetas / badges ===== */
.badge { display: inline-block; padding: 4px 11px; border-radius: 30px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.badge.pendente { background: var(--amarelo-bg); color: #6b5200; }
.badge.em_andamento { background: var(--azul-100); color: var(--accent); }
.badge.concluido { background: var(--verde-bg); color: #15723f; }
.badge.sim { background: var(--verde-bg); color: #15723f; }
.badge.nao { background: var(--cinza-100); color: var(--muted); }
.badge.perfil-admin { background: var(--btn); color: #fff; }
.badge.perfil-comum { background: var(--cinza-100); color: var(--muted); }
.badge.inativo { background: var(--vermelho-bg); color: var(--vermelho); }
.badge.ativo { background: var(--verde-bg); color: var(--verde); }
.badge.status-em_andamento { background: var(--amarelo-bg); color: #6b5200; }
.badge.status-instrucao_finalizada { background: var(--azul-100); color: var(--accent); }
.badge.status-conclusao_aberta { background: #e8f0fb; color: var(--btn); }
.badge.status-alegacoes_finais { background: #fdeedd; color: #9a5b00; }
.badge.status-concluido { background: var(--verde-bg); color: #15723f; }
.badge.statusdeg-pendente { background: var(--amarelo-bg); color: #6b5200; }
.badge.statusdeg-em_andamento { background: var(--azul-100); color: var(--accent); }

/* Chips e balões */
.chip { display: inline-block; padding: 3px 9px; border-radius: 30px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.chip-prova { background: var(--azul-100); color: var(--accent); }
.chip-nudeca { background: #efe3fb; color: #6b29b8; margin-left: 6px; }
.chip-preso { background: var(--vermelho-bg); color: var(--vermelho); }
.chip-ok { background: var(--verde-bg); color: #15723f; }
.chip.prazo-vencido { background: var(--vermelho-bg); color: var(--vermelho); }
.chip.prazo-vencendo { background: #fdeedd; color: #9a5b00; }
.chip.prazo-ok { background: var(--cinza-100); color: var(--muted); }
.chip-cat-audiencia { background: var(--azul-100); color: var(--accent); }
.chip-cat-prova { background: #efe3fb; color: #6b29b8; }

/* Chip do status da minuta (sentenças) */
.minuta-chip { display: inline-block; margin-top: 5px; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 30px; background: var(--field); color: var(--muted); white-space: nowrap; }
.minuta-chip.minuta-em_elaboracao { background: var(--amarelo-bg); color: #6b5200; }
.minuta-chip.minuta-em_revisao { background: var(--azul-100); color: var(--accent); }
.minuta-chip.minuta-concluida { background: var(--verde-bg); color: #15723f; }
[data-theme="dark"] .minuta-chip { background: var(--azul-50); }
[data-theme="dark"] .minuta-chip.minuta-em_revisao { background: rgba(47, 111, 214, .28); color: #cfe0fb; }
[data-theme="dark"] .minuta-chip.minuta-em_elaboracao { background: rgba(184, 134, 11, .25); color: #f0cf7a; }
[data-theme="dark"] .minuta-chip.minuta-concluida { background: rgba(31, 157, 87, .25); color: #7fe0a8; }

.balao-uni { display: inline-block; padding: 3px 11px; border-radius: 30px; font-size: 11.5px; font-weight: 700; white-space: nowrap; color: #fff; }
.uni-jecrim { background: #0d7d8c; } .uni-vara { background: #1f9d57; } .uni-pje { background: #6b29b8; } .uni-eproc { background: #b8860b; } .uni-outro { background: var(--muted); }

/* ===================== MODAL ===================== */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(8, 18, 45, .55);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 36px 16px; z-index: 100; overflow-y: auto;
}
.modal {
  background: #fff; border-radius: 18px; box-shadow: var(--sombra-forte);
  width: 100%; max-width: 560px; position: relative; margin: auto;
  animation: surge .18s ease-out;
}
@keyframes surge { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-fechar {
  position: absolute; top: 12px; right: 14px; background: transparent; border: none;
  font-size: 26px; line-height: 1; color: var(--muted); cursor: pointer;
  width: 34px; height: 34px; border-radius: 9px;
}
.modal-fechar:hover { color: var(--ink); background: var(--field); }
.modal-cabecalho { padding: 22px 26px 0; }
.modal-cabecalho h3 { margin: 0; font-size: 19px; font-weight: 800; color: var(--ink); }
.modal-corpo { padding: 16px 26px; }
.modal-rodape { padding: 14px 26px 22px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.form-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.form-grade .col-inteira { grid-column: 1 / -1; }

/* ===== Editor de lista de mídias ===== */
.midia-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.midia-item { background: var(--field); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; display: flex; align-items: center; gap: 8px; }
.midia-prefixo { font-weight: 700; color: var(--accent); font-size: 13px; white-space: nowrap; }
.midia-item input { flex: 1; min-width: 0; padding: 9px 11px; font-size: 13.5px; color: var(--ink); border: 1.5px solid var(--field-bd); border-radius: 8px; background: #fff; }
.midia-item input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(47, 111, 214, .13); }
.midia-remover { flex: 0 0 auto; width: 32px; height: 32px; background: var(--vermelho-bg); color: var(--vermelho); border: none; border-radius: 8px; font-size: 18px; line-height: 1; cursor: pointer; }
.midia-remover:hover { background: #f6d8d4; }
.midia-barra { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.midia-contador { font-size: 13px; font-weight: 700; color: var(--accent); }

.campo-check { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.campo-check input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; }
.campo-check > span { margin: 0; font-weight: 700; color: var(--ink); font-size: 13.5px; }
.cadeado { font-size: 13px; }
.midias-celula { display: flex; flex-direction: column; gap: 3px; max-width: 380px; }
.midias-celula .mitem { padding: 2px 0; }

.nudeca-label { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #6b29b8; white-space: nowrap; }
.nudeca-label input { width: 16px; height: 16px; accent-color: #6b29b8; }
.radio-grupo { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.radio-op { display: flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ink); font-size: 13.5px; cursor: pointer; }
.radio-op input { width: 16px; height: 16px; accent-color: var(--accent); }
.cor-grupo { display: flex; gap: 8px; flex-wrap: wrap; }
.cor-sw { width: 30px; height: 30px; border-radius: 50%; border: 3px solid transparent; cursor: pointer; }
.cor-sw.sel { border-color: var(--ink); }

/* ===================== TOASTS ===================== */
.toasts { position: fixed; bottom: 22px; right: 22px; display: flex; flex-direction: column; gap: 10px; z-index: 200; }
.toast { background: var(--ink); color: #fff; padding: 13px 18px; border-radius: 12px; box-shadow: var(--sombra-forte); font-size: 14px; max-width: 340px; animation: surge .2s ease-out; border-left: 4px solid var(--accent); }
.toast.sucesso { border-left-color: var(--verde); }
.toast.erro { border-left-color: var(--vermelho); }
.toast.aviso { border-left-color: var(--amarelo); }

/* ===================== RODAPÉ ===================== */
.rodape-app { text-align: center; color: var(--muted); font-size: 12px; padding: 14px 16px 20px; flex: none; }

/* ===================== Títulos / blocos ===================== */
.titulo-bloco { margin: 24px 0 10px; font-size: 17px; font-weight: 800; color: var(--ink); }
.sub-secao { color: var(--muted); font-size: 13px; margin: 0 0 14px; }
.bloco-extra { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; }
.bloco-extra-tit { font-weight: 700; color: var(--accent); font-size: 13.5px; margin-bottom: 6px; }
.vazio.mini { padding: 8px; font-size: 13px; text-align: left; }
.hist-item { font-size: 12.5px; color: var(--muted); padding: 3px 0; border-bottom: 1px dotted var(--line); }

/* Número do processo + copiar */
.proc-wrap { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: center; gap: 5px 6px; }
.proc-num { grid-column: 1; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; letter-spacing: .2px; color: var(--ink); }
.proc-chips { grid-column: 1 / -1; display: flex; gap: 4px; flex-wrap: wrap; }
.btn-copiar { background: var(--field); border: 1px solid var(--field-bd); border-radius: 7px; width: 26px; height: 24px; cursor: pointer; color: var(--muted); font-size: 12px; line-height: 1; }
.btn-copiar:hover { background: var(--azul-100); color: var(--accent); }

/* Linha urgente */
.tabela tbody tr.linha-urgente { background: #fff6f5; box-shadow: inset 3px 0 0 var(--vermelho); }

/* Densidade (ver menos) */
.tabela-compacta tbody td { padding: 7px 15px; font-size: 12.5px; }
.tabela-compacta .midias-celula .mitem:nth-child(n+2) { display: none; }

/* Estado "tudo em dia" */
.estado-ok { text-align: center; padding: 36px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--raio-lg); box-shadow: var(--sombra); margin-bottom: 8px; }
.estado-ok-emoji { font-size: 42px; }
.estado-ok-tit { font-size: 21px; font-weight: 800; color: var(--ink); margin-top: 6px; }
.estado-ok-sub { color: var(--muted); font-size: 14px; margin-top: 4px; }

/* Telas vazias com ícone de balança */
.vazio::before {
  content: ''; display: block; width: 84px; height: 84px; margin: 0 auto 12px; opacity: .5;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f6fd6' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v16'/%3E%3Cpath d='M7 21h10'/%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M8 5 4 7'/%3E%3Cpath d='M16 5 20 7'/%3E%3Cpath d='M4 7 1.8 12.5a2.6 2.6 0 0 0 4.4 0Z'/%3E%3Cpath d='M20 7 17.8 12.5a2.6 2.6 0 0 0 4.4 0Z'/%3E%3Ccircle cx='12' cy='4' r='1.3'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ===================== Gráfico de barras (relatório) ===================== */
.grafico { background: #fff; border: 1px solid var(--line); border-radius: var(--raio-lg); box-shadow: var(--sombra); padding: 16px 18px; margin-bottom: 16px; }
.grafico h4 { margin: 6px 0 8px; font-size: 13px; color: var(--muted); font-weight: 700; }
.grafico h4:not(:first-child) { margin-top: 16px; }
.g-row { display: flex; align-items: center; gap: 10px; margin: 5px 0; }
.g-nome { flex: 0 0 140px; font-size: 12.5px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-track { flex: 1; background: var(--field); border-radius: 7px; height: 18px; overflow: hidden; }
.g-bar { height: 100%; border-radius: 7px; color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: flex-end; padding: 0 6px; min-width: 22px; transition: width .4s ease-out; }
.g-bar.sen { background: var(--accent); }
.g-bar.tempo { background: var(--amarelo); color: #3a2e00; }

/* Skeleton */
.skel-row td { padding: 13px 15px; }
.skel-cell { height: 14px; border-radius: 7px; background: linear-gradient(90deg, var(--line), var(--field), var(--line)); background-size: 200% 100%; animation: shimmer 1.1s infinite linear; }
@keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* Microanimações */
.btn:hover:not(:active) { transform: translateY(-1px); }
.btn, .btn-mini, .nav-item, .balao-uni, .chip, .badge, .usuario-btn, .topo-sino, .cor-sw, .card-resumo {
  transition: background .15s, color .15s, transform .12s, box-shadow .15s, border-color .15s;
}
.card-resumo:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(10, 30, 80, .12); }

/* ===================== TEMA ESCURO ===================== */
[data-theme="dark"] {
  --ink: #e7ecf3; --muted: #9aa7b6;
  --line: #2b3543; --field: #161d27; --field-bd: #3a4452;
  --cinza-900: #e7ecf3; --cinza-700: #b8c2cf; --cinza-600: #9aa7b6; --cinza-500: #8a97a6;
  --cinza-300: #3a4452; --cinza-200: #2b3543; --cinza-100: #161d27; --branco: #1e2733;
  --azul-50: #1a2230; --azul-100: #243450;
  --sombra: 0 6px 18px rgba(0, 0, 0, .45); --sombra-forte: 0 18px 50px rgba(0, 0, 0, .6);
}
[data-theme="dark"] body { background: #0a1018; }
[data-theme="dark"] .tela-login { background: #0a1018; }
[data-theme="dark"] .login-card,
[data-theme="dark"] .app-card,
[data-theme="dark"] .main,
[data-theme="dark"] .login-form-panel { background: #1e2733; }
[data-theme="dark"] .tabela-wrap,
[data-theme="dark"] .filtros,
[data-theme="dark"] .card-resumo,
[data-theme="dark"] .grafico,
[data-theme="dark"] .estado-ok,
[data-theme="dark"] .modal,
[data-theme="dark"] .usuario-dropdown { background: #1e2733; color: var(--ink); border-color: var(--field-bd); }
[data-theme="dark"] .tabela thead th { background: #161d27; color: var(--muted); }
[data-theme="dark"] .usuario-dropdown button { background: transparent; color: var(--ink); }
[data-theme="dark"] .usuario-dropdown button:hover { background: var(--azul-50); }
[data-theme="dark"] .topbar { background: #1e2733; }
[data-theme="dark"] .menu-toggle, [data-theme="dark"] .topo-sino { background: #161d27; color: var(--ink); border-color: var(--field-bd); }
[data-theme="dark"] .marca-brasao { border-color: rgba(255,255,255,.5); }
[data-theme="dark"] .marca-l1, [data-theme="dark"] .login-titulo, [data-theme="dark"] .saudacao,
[data-theme="dark"] .view-cabecalho h2, [data-theme="dark"] .proc-num, [data-theme="dark"] .titulo-bloco,
[data-theme="dark"] .estado-ok-tit, [data-theme="dark"] .card-resumo .valor, [data-theme="dark"] .midia-contador,
[data-theme="dark"] .midia-prefixo, [data-theme="dark"] .dd-cabecalho { color: var(--ink); }
[data-theme="dark"] .campo input, [data-theme="dark"] .campo select, [data-theme="dark"] .campo textarea,
[data-theme="dark"] .campo-icone input, [data-theme="dark"] .topbar-busca input,
[data-theme="dark"] .filtro, [data-theme="dark"] .filtro-busca, [data-theme="dark"] .filtro-data input,
[data-theme="dark"] .midia-item input { background: #11181f; color: var(--ink); border-color: var(--field-bd); }
[data-theme="dark"] .midia-item { background: var(--azul-50); }
[data-theme="dark"] .tabela tbody tr.linha-urgente { background: #3a1f1f; }
[data-theme="dark"] .btn-secundario { background: var(--azul-50); color: #cfe0fb; border-color: var(--field-bd); }
[data-theme="dark"] .btn-mini { background: var(--azul-50); color: var(--ink); border-color: var(--field-bd); }
[data-theme="dark"] .chip-cat-audiencia, [data-theme="dark"] .badge.statusdeg-em_andamento,
[data-theme="dark"] .badge.status-instrucao_finalizada, [data-theme="dark"] .badge.status-conclusao_aberta,
[data-theme="dark"] .badge.em_andamento { background: rgba(47,111,214,.28); color: #cfe0fb; }
[data-theme="dark"] .chip-prova, [data-theme="dark"] .chip-nudeca { background: rgba(124,92,255,.24); color: #d8c7ff; }
[data-theme="dark"] .badge.status-em_andamento, [data-theme="dark"] .badge.statusdeg-pendente { background: rgba(184,134,11,.25); color: #f0cf7a; }
[data-theme="dark"] .sub-secao, [data-theme="dark"] .perfil-sub { color: var(--muted); }

/* ===================== RESPONSIVO ===================== */
/* Menu lateral: trilho fino que revela no hover (desktop). "Fixar" deixa sempre aberto. */
@media (min-width: 981px) {
  #app:not(.fixado) .sidebar {
    position: absolute; left: 0; top: 0; height: 100%; z-index: 56;
    width: 74px; padding: 24px 10px 20px; overflow: hidden;
    transition: width .2s ease, box-shadow .2s ease;
  }
  #app:not(.fixado) .main { margin-left: 74px; }
  #app:not(.fixado) .sidebar .sb-textos,
  #app:not(.fixado) .sidebar .nav-label,
  #app:not(.fixado) .sidebar .nav-grupo-seta,
  #app:not(.fixado) .sidebar .sb-rodape { display: none; }
  #app:not(.fixado) .sidebar .nav-item,
  #app:not(.fixado) .sidebar .nav-grupo-cab { justify-content: center; gap: 0; }
  #app:not(.fixado) .sidebar .nav-sub { border: none; margin-left: 0; padding-left: 0; }

  #app:not(.fixado) .sidebar:hover {
    width: 264px; padding: 24px 18px 20px; overflow: visible;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
  }
  #app:not(.fixado) .sidebar:hover .sb-textos { display: flex; }
  #app:not(.fixado) .sidebar:hover .nav-label { display: block; }
  #app:not(.fixado) .sidebar:hover .nav-grupo-seta { display: flex; }
  #app:not(.fixado) .sidebar:hover .sb-rodape { display: block; }
  #app:not(.fixado) .sidebar:hover .nav-item,
  #app:not(.fixado) .sidebar:hover .nav-grupo-cab { justify-content: flex-start; gap: 13px; }
  #app:not(.fixado) .sidebar:hover .nav-sub { border-left: 1px solid rgba(255, 255, 255, .16); margin-left: 12px; padding-left: 9px; }
}
@media (max-width: 980px) {
  .menu-toggle { display: inline-flex; }
  .btn-recolher { display: none; }
  .sidebar {
    position: absolute; left: 0; top: 0; height: 100%; z-index: 55;
    transform: translateX(-112%); transition: transform .22s ease;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .4);
  }
  .sidebar.aberta { transform: translateX(0); }
  .perfil-sub { display: none; }
  /* Login: empilha, esconde foto */
  .login-card { flex-direction: column; min-height: 0; }
  .login-foto { display: none; }
  .login-form-panel { width: 100%; padding: 44px 36px 38px; }
}
@media (max-width: 600px) {
  .layout { padding: 0; }
  .app-card { border-radius: 0; height: 100vh; }
  .tela-login { padding: 0; }
  .login-card { border-radius: 0; }
  .login-titulo { font-size: 30px; }
  .conteudo { padding: 6px 16px 26px; }
  .topbar { padding: 16px 16px; gap: 10px; }
}

/* Tabela vira "cartões" no celular */
@media (max-width: 720px) {
  .filtro-busca { min-width: 100%; }
  .tabela-wrap { box-shadow: none; background: transparent; border: none; overflow: visible; }
  .tabela thead { display: none; }
  .tabela, .tabela tbody, .tabela tr, .tabela td { display: block; width: 100%; }
  .tabela tbody tr {
    background: #fff; border-radius: var(--raio); box-shadow: var(--sombra);
    margin-bottom: 12px; padding: 6px 4px; border: 1px solid var(--line);
  }
  .tabela tbody td {
    display: flex; justify-content: space-between; gap: 14px;
    border-bottom: 1px dashed var(--line); padding: 9px 14px; text-align: right;
  }
  .tabela tbody td:last-child { border-bottom: none; }
  .tabela tbody td::before {
    content: attr(data-rotulo); font-weight: 700; color: var(--muted);
    text-align: left; flex: 0 0 42%; font-size: 12.5px;
  }
  .tabela td.num { text-align: right; }
  td.acoes { justify-content: flex-end; gap: 12px; }
  td.acoes::before { content: "Ações"; }
  .btn-mini { padding: 10px 14px; font-size: 13.5px; min-height: 44px; }
  .obs-celula { max-width: none; text-align: right; }
  .midias-celula { max-width: none; text-align: right; }
  .form-grade { grid-template-columns: 1fr; }
  .modal-overlay { padding: 14px; }
  .proc-wrap { justify-content: flex-end; }
}

/* ===== v17: separador do menu, badge "P" (programador), saudação em linha ===== */
.nav-sep { height: 1px; background: rgba(255, 255, 255, .18); margin: 14px 10px 8px; }
.nav-grupo { margin-top: 6px; }   /* o gap agora vem do .nav-sep */

.saudacao-linha { display: flex; align-items: center; gap: 7px; }
.badge-prog {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--ouro, #c9a227); color: #1a1205;
  font-weight: 800; font-size: 12px; line-height: 1; flex: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
}
.badge-prog.mini { width: 17px; height: 17px; font-size: 10.5px; margin-left: 7px; vertical-align: middle; }

/* Checkbox em linha nos formulários (ex.: "Programador") */
.campo-check { flex-direction: row; align-items: center; gap: 9px; }
.campo-check input[type="checkbox"] { width: auto; min-height: 0; }

/* Foto de perfil */
.usuario-avatar.tem-foto { background-size: cover; background-position: center; color: transparent; }
.foto-edit { display: flex; align-items: center; gap: 14px; }
.foto-preview {
  width: 64px; height: 64px; border-radius: 50%; flex: none;
  background: var(--accent, #1f3a6e); background-size: cover; background-position: center;
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 22px; border: 2px solid var(--line, #dfe6f2);
}
.foto-acoes { display: flex; flex-direction: column; gap: 6px; }

/* ===== E1: fonte maior, banner de prazo, ajuda ===== */
html.fonte-grande { zoom: 1.15; }
.alerta-prazo {
  display: block; width: 100%; text-align: left; cursor: pointer;
  border: none; border-left: 4px solid #c0392b;
  background: #fdecea; color: #7a1f17; font-weight: 600; font-size: 13.5px;
  padding: 10px 18px; margin: 0;
}
.alerta-prazo:hover { background: #fbddd9; }
[data-theme="dark"] .alerta-prazo { background: #3a1714; color: #f3b9b1; border-left-color: #e06b5e; }
.ajuda-corpo { display: flex; flex-direction: column; gap: 12px; max-width: 560px; }
.ajuda-item strong { display: block; color: var(--ink, #102a5e); margin-bottom: 2px; }
.ajuda-item p { margin: 0; color: var(--muted, #5c6675); font-size: 13.5px; line-height: 1.45; }

/* Estrela de favorito (fixar processo no topo) */
.btn-estrela { background: none; border: none; cursor: pointer; font-size: 17px; line-height: 1; color: var(--line, #c7cfdd); padding: 0 2px; flex: none; }
.btn-estrela:hover, .btn-estrela.on { color: var(--ouro, #c9a227); }

/* Reatribuir em lote */
.rt-toolbar { display: flex; gap: 8px; margin: 6px 0; }
.rt-lista { max-height: 320px; overflow: auto; border: 1px solid var(--line, #dfe6f2); border-radius: 10px; padding: 6px; }
.rt-item { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 8px; cursor: pointer; }
.rt-item:hover { background: var(--zebra, #f4f8fd); }
.rt-item input { width: auto; min-height: 0; }

/* Calendário de audiências */
.cal-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.cal-mes { font-weight: 700; font-size: 16px; color: var(--ink, #102a5e); }
.cal-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.cal-cab { text-align: center; font-size: 11.5px; font-weight: 700; color: var(--muted, #5c6675); text-transform: uppercase; padding: 4px 0; }
.cal-cel { position: relative; min-height: 46px; border: 1px solid var(--line, #e3e9f3); border-radius: 8px; padding: 4px 6px; background: #fff; }
.cal-cel.vazia { border: none; background: none; }
.cal-cel.tem { cursor: pointer; border-color: var(--accent, #1f3a6e); background: #eef4ff; }
.cal-cel.tem:hover { background: #e0ecff; }
.cal-cel.hoje { outline: 2px solid var(--ouro, #c9a227); }
.cal-num { font-size: 12.5px; color: var(--ink, #102a5e); font-weight: 600; }
.cal-badge { position: absolute; right: 5px; bottom: 5px; background: var(--accent, #1f3a6e); color: #fff; font-size: 11px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.cal-dia-lista { margin-top: 14px; }
.cal-dia-tit { margin: 0 0 8px; font-size: 14px; color: var(--ink, #102a5e); }
.cal-dia-item { padding: 6px 0; border-bottom: 1px dashed var(--line, #e3e9f3); font-size: 13.5px; }
[data-theme="dark"] .cal-cel { background: #16233f; border-color: #2a3a5a; }
[data-theme="dark"] .cal-cel.tem { background: #1d3157; }
