/* ============================================================================
   SGCP — Agenda (audiências, sessões, perícias, marcos — spec `agenda`).
   Extraído de style="" inline colado na portagem do protótipo — mesmas
   declarações, sem mudança visual. Cores/raios/sombras sempre via tokens
   (tokens.css). Convenção BEM igual à de shell.css/componentes.css/auth.css.
   ============================================================================ */

.sgcp-agenda__topo {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.sgcp-agenda__tipos {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.sgcp-agenda__tipo-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--surface);
  color: var(--text-2);
  font: 600 12px var(--font);
  text-decoration: none;
}

.sgcp-agenda__tipo-tab--ativa {
  border-color: var(--brand-bg);
  background: var(--brand-bg);
  color: var(--on-brand);
}

/* Paridade com o protótipo: o pill do tipo ativo ganha a cor do próprio
   tipo (não só azul da marca) — mesmo mapeamento de cor usado nos pontos
   do calendário e no badge de tipo da lista de eventos. */
.sgcp-agenda__tipo-tab--ativa-audiencia {
  border-color: var(--brand-border);
  background: var(--brand-soft);
  color: var(--brand-soft-text);
}

.sgcp-agenda__tipo-tab--ativa-dep-especial {
  border-color: var(--danger);
  background: var(--danger-soft);
  color: var(--danger-text);
}

.sgcp-agenda__tipo-tab--ativa-pericia {
  border-color: var(--sec-bg);
  background: var(--sec-soft);
  color: var(--sec-text);
}

.sgcp-agenda__tipo-tab--ativa-marco {
  border-color: var(--border-strong);
  background: var(--surface-2);
  color: var(--text-2);
}

.sgcp-agenda__tipo-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.sgcp-agenda__tipo-dot--audiencia { background: var(--brand-bg); }
.sgcp-agenda__tipo-dot--dep-especial { background: var(--danger); }
.sgcp-agenda__tipo-dot--pericia { background: var(--sec-bg); }
.sgcp-agenda__tipo-dot--marco { background: var(--text-3); }

.sgcp-agenda__tipo-dot--conflito {
  box-shadow: 0 0 0 2px var(--warning-soft);
}

.sgcp-agenda__tipo-contagem {
  font: 600 10.5px var(--font);
  font-variant-numeric: tabular-nums;
  opacity: .75;
}

.sgcp-agenda__separador {
  width: 1px;
  height: 20px;
  background: var(--border);
  margin: 0 3px;
}

.sgcp-agenda__somente-meus {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font: 400 12.5px var(--font);
  color: var(--text-2);
  cursor: pointer;
  user-select: none;
}

.sgcp-agenda__somente-meus-input {
  width: 14px;
  height: 14px;
  accent-color: var(--brand-bg);
  cursor: pointer;
}

.sgcp-agenda__exportar-wrap {
  margin-left: auto;
  display: flex;
  gap: 8px;
  align-items: center;
}

.sgcp-agenda__exportar-form {
  display: flex;
  gap: 8px;
}

.sgcp-agenda__exportar-btn {
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text-1);
  font: 600 12.5px var(--font);
  cursor: pointer;
}

.sgcp-agenda__wrap {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 14px;
  align-items: start;
}

.sgcp-agenda__calendario-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
  padding: 16px 18px;
}

.sgcp-agenda__nav {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}

.sgcp-agenda__nav-grupo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.sgcp-agenda__nav-seta {
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.sgcp-agenda__nav-label {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  font: 600 15px var(--font);
}

.sgcp-agenda__nav-label--btn {
  border: none;
  background: none;
  cursor: pointer;
  border-radius: var(--r-sm);
  color: var(--text-1);
}

.sgcp-agenda__nav-label--btn:hover {
  background: var(--hover-bg);
}

.sgcp-agenda__mes-picker {
  display: inline-block;
}

.sgcp-dropdown__painel--agenda-mes {
  top: calc(100% + 6px);
  left: 0;
  width: 220px;
  padding: 10px;
  box-sizing: border-box;
}

.sgcp-agenda__mes-picker-ano {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 8px;
}

.sgcp-agenda__mes-picker-ano-label {
  font: 600 13px var(--font);
  min-width: 40px;
  text-align: center;
}

.sgcp-agenda__mes-picker-grade {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}

.sgcp-agenda__mes-picker-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  border-radius: var(--r-sm);
  font: 500 12px var(--font);
  color: var(--text-2);
  text-decoration: none;
  background: var(--surface-2);
}

.sgcp-agenda__mes-picker-item:hover {
  background: var(--hover-bg);
}

.sgcp-agenda__mes-picker-item--ativo {
  background: var(--brand-bg);
  color: var(--on-brand);
  font-weight: 600;
}

.sgcp-agenda__hoje-btn {
  margin-left: 2px;
  height: 28px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--brand-text);
  font: 600 11.5px var(--font);
  text-decoration: none;
}

.sgcp-agenda__legenda {
  margin-left: auto;
  display: flex;
  gap: 14px;
  font: 400 11px var(--font);
  color: var(--text-3);
  flex-wrap: wrap;
}

.sgcp-agenda__legenda-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.sgcp-agenda__legenda-dot {
  width: 8px;
  height: 8px;
}

.sgcp-agenda__legenda-dot--audiencia { border-radius: 50%; background: var(--brand-bg); }
.sgcp-agenda__legenda-dot--dep-especial { border-radius: 50%; background: var(--danger); }
.sgcp-agenda__legenda-dot--pericia { border-radius: 50%; background: var(--sec-bg); }
.sgcp-agenda__legenda-dot--marco { border-radius: 50%; background: var(--text-3); }

.sgcp-agenda__legenda-dot--ausencia {
  border-radius: 2px;
  background: var(--warning-soft);
  border: 1px solid var(--warning);
  box-sizing: border-box;
}

.sgcp-agenda__grade {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

/* `role="row"` sem afetar o fluxo do grid (item continua fluindo nas 7
   colunas como se a linha não existisse na árvore de layout). */
.sgcp-agenda__semana-row {
  display: contents;
}

.sgcp-agenda__semana-header {
  font: 600 10.5px var(--font);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text-3);
  text-align: center;
  padding: 4px 0;
}

.sgcp-agenda__dia {
  position: relative;
  min-height: 52px;
  border-radius: var(--r-sm);
  padding: 5px 7px;
  box-sizing: border-box;
  background: var(--surface);
  border: 1px solid var(--border);
  opacity: 1;
}

.sgcp-agenda__dia--clicavel {
  display: block;
  width: 100%;
  text-align: left;
  font-family: var(--font);
  cursor: pointer;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.sgcp-agenda__dia--clicavel:hover {
  border-color: var(--brand-bg);
  box-shadow: 0 0 0 2px var(--brand-soft);
}

.sgcp-agenda__dia--clicavel:focus-visible {
  outline: 2px solid var(--brand-text);
  outline-offset: 2px;
}

.sgcp-agenda__dia--hoje {
  background: var(--brand-soft);
  border-color: var(--brand-bg);
}

.sgcp-agenda__dia--ausencia {
  background: var(--warning-soft);
  border-color: var(--warning);
}

/* Indicador de dia já passado direto na grade (sem precisar abrir o modal):
   número mais apagado + fundo levemente acinzentado. Combina com
   `--ausencia` (mantém o fundo de ausência, só apaga o número). */
.sgcp-agenda__dia--passado .sgcp-agenda__dia-numero {
  color: var(--text-3);
}

.sgcp-agenda__dia--passado:not(.sgcp-agenda__dia--ausencia) {
  background: var(--surface-2);
}

.sgcp-agenda__dia--fora-mes {
  opacity: .45;
}

.sgcp-agenda__dia-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.sgcp-agenda__dia-badge {
  font: 600 10px var(--font);
  border-radius: var(--r-full);
  padding: 2px 9px;
}

.sgcp-agenda__dia-badge--hoje {
  background: var(--brand-soft);
  color: var(--brand-soft-text);
}

.sgcp-agenda__dia-badge--passado {
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-3);
}

.sgcp-agenda__dia-badge--ausencia {
  background: var(--warning-soft);
  color: var(--warning-text);
}

.sgcp-agenda__dia-lista {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sgcp-agenda__dia-evento {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 8px 4px;
  border-top: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
}

.sgcp-agenda__dia-evento:first-child {
  border-top: none;
}

.sgcp-agenda__dia-evento:hover {
  background: var(--hover-bg);
}

.sgcp-agenda__dia-evento-dot {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 4px;
}

.sgcp-agenda__dia-evento-info {
  min-width: 0;
  flex: 1;
}

.sgcp-agenda__dia-evento-titulo {
  display: block;
  font: 600 12.5px/1.3 var(--font);
  color: var(--text-1);
}

.sgcp-agenda__dia-evento-meta {
  display: block;
  font: 400 11px var(--font);
  color: var(--text-3);
  margin-top: 1px;
  font-variant-numeric: tabular-nums;
}

.sgcp-agenda__dia-evento-badges {
  display: flex;
  gap: 5px;
  margin-top: 5px;
  flex-wrap: wrap;
}

.sgcp-agenda__dia-vazio {
  font: 400 11.5px/1.5 var(--font);
  color: var(--text-3);
  margin: 0;
}

.sgcp-agenda__dia-acoes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.sgcp-agenda__dia-exportar-form {
  display: flex;
  gap: 8px;
}

.sgcp-agenda__dia-acao-btn {
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text-1);
  font: 600 12px var(--font);
  cursor: pointer;
}

.sgcp-agenda__dia-acao-btn:hover {
  background: var(--hover-bg);
}

.sgcp-agenda__dia-passado-aviso {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  flex-basis: 100%;
  margin: 0;
  font: 400 11px/1.45 var(--font);
  color: var(--text-3);
}

.sgcp-agenda__dia-passado-aviso svg {
  flex: none;
  margin-top: 1px;
}

.sgcp-agenda__dia-numero {
  font: 600 12px var(--font);
  font-variant-numeric: tabular-nums;
  color: var(--text-1);
}

.sgcp-agenda__dia--hoje .sgcp-agenda__dia-numero {
  color: var(--brand-text);
}

.sgcp-agenda__dia-eventos {
  display: flex;
  gap: 3px;
  margin-top: 4px;
  flex-wrap: wrap;
}

.sgcp-agenda__lista-contagem {
  font: 600 10.5px var(--font);
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-3);
  border-radius: var(--r-full);
  padding: 1px 8px;
  font-variant-numeric: tabular-nums;
}

.sgcp-agenda__evento {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  border-top: 1px solid var(--border);
  padding: 10px 12px 10px 16px;
}

.sgcp-agenda__evento-data {
  flex: none;
  width: 40px;
  text-align: center;
}

.sgcp-agenda__evento-dia {
  display: block;
  font: 700 15px var(--font);
  font-variant-numeric: tabular-nums;
}

.sgcp-agenda__evento-mes {
  display: block;
  font: 600 9.5px var(--font);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text-3);
}

.sgcp-agenda__evento-info {
  min-width: 0;
  flex: 1;
}

.sgcp-agenda__evento-titulo {
  display: block;
  font: 600 12.5px/1.35 var(--font);
}

.sgcp-agenda__evento-meta {
  display: block;
  font: 400 11.5px var(--font);
  color: var(--text-3);
  margin-top: 1px;
}

.sgcp-agenda__evento-badges {
  display: flex;
  gap: 6px;
  margin-top: 5px;
  flex-wrap: wrap;
  align-items: center;
}

.sgcp-agenda__evento-tipo-badge {
  font: 600 10.5px var(--font);
  background: var(--surface-2);
  color: var(--text-2);
  border-radius: var(--r-full);
  padding: 1px 8px;
}

/* Paridade com o protótipo: o badge de tipo na lista de eventos leva a
   cor do próprio tipo (mesmo mapeamento dos pontos do calendário). */
.sgcp-agenda__evento-tipo-badge--audiencia { background: var(--brand-soft); color: var(--brand-soft-text); }
.sgcp-agenda__evento-tipo-badge--dep-especial { background: var(--danger-soft); color: var(--danger-text); }
.sgcp-agenda__evento-tipo-badge--pericia { background: var(--sec-soft); color: var(--sec-text); }
.sgcp-agenda__evento-tipo-badge--marco { background: var(--surface-2); color: var(--text-2); }

.sgcp-agenda__evento-status-badge {
  font: 600 10.5px var(--font);
  border-radius: var(--r-full);
  padding: 1px 8px;
}

.sgcp-agenda__evento-status-badge--agendada { background: var(--brand-soft); color: var(--brand-soft-text); }
.sgcp-agenda__evento-status-badge--realizada { background: var(--success-soft); color: var(--success-text); }
.sgcp-agenda__evento-status-badge--remarcada { background: var(--warning-soft); color: var(--warning-text); }
.sgcp-agenda__evento-status-badge--cancelada { background: var(--surface-2); color: var(--text-3); }

.sgcp-agenda__conflito-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 600 10.5px var(--font);
  background: var(--warning-soft);
  color: var(--warning-text);
  border-radius: var(--r-full);
  padding: 1px 8px;
}

.sgcp-agenda__conflito-texto {
  display: block;
  font: 400 11px/1.5 var(--font);
  color: var(--warning-text);
  margin-top: 4px;
}

.sgcp-agenda__evento-acoes {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: none;
  align-items: flex-end;
}

.sgcp-agenda__acao-link {
  font: 600 11px var(--font);
  color: var(--brand-text);
  text-decoration: none;
  white-space: nowrap;
}

.sgcp-agenda__acao-btn {
  border: none;
  background: none;
  padding: 0;
  color: var(--brand-text);
  font: 600 11px var(--font);
  cursor: pointer;
  white-space: nowrap;
}

.sgcp-agenda__acao-btn--perigo {
  color: var(--danger-text);
}

.sgcp-agenda__modal-texto-mb12 {
  font: 400 13px/1.5 var(--font);
  color: var(--text-2);
  margin: 0 0 12px;
}

.sgcp-agenda__modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.sgcp-agenda__modal-grid + .sgcp-agenda__modal-grid,
.sgcp-campo-label-wrap + .sgcp-agenda__modal-grid,
.sgcp-agenda__modal-grid-3 {
  margin-top: 12px;
}

.sgcp-agenda__modal-grid-3 {
  display: grid;
  grid-template-columns: 1fr .8fr 1.5fr;
  gap: 12px;
}

.sgcp-agenda__agendar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 13px;
  border: none;
  border-radius: var(--r-sm);
  background: var(--brand-bg);
  color: var(--on-brand);
  font: 600 12.5px var(--font);
  cursor: pointer;
  margin-left: 10px;
}

.sgcp-agenda__agendar-btn:hover {
  background: var(--brand-bg-hover);
}

.sgcp-agenda__resp-fixo {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 11px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--surface-2);
  color: var(--text-2);
  font: 400 13px var(--font);
  box-sizing: border-box;
}

.sgcp-agenda__resp-fixo-nota {
  display: block;
  font: 400 10.5px var(--font);
  color: var(--text-3);
  margin-top: 4px;
}

.sgcp-agenda__modal-texto-realizar {
  font: 400 13px/1.5 var(--font);
  color: var(--text-2);
  margin: 0 0 16px;
}

.sgcp-agenda__modal-aviso-resultado {
  font: 400 11.5px/1.5 var(--font);
  color: var(--text-3);
  margin: 8px 0 0;
}

.sgcp-agenda__dep-banner {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--danger);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
  padding: 14px 16px;
}

.sgcp-agenda__dep-cabecalho {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.sgcp-agenda__dep-titulo {
  font: 600 13.5px var(--font);
}

.sgcp-agenda__dep-alerta-badge {
  font: 600 10.5px var(--font);
  background: var(--danger-soft);
  color: var(--danger-text);
  border-radius: var(--r-full);
  padding: 1px 8px;
}

.sgcp-agenda__dep-alertas-fixos-badge {
  font: 600 10.5px var(--font);
  background: var(--danger-soft);
  color: var(--danger-text);
  border-radius: var(--r-full);
  padding: 1px 8px;
}

.sgcp-agenda__dep-lei {
  font: 400 12px/1.5 var(--font);
  color: var(--text-3);
  margin: 4px 0 10px;
}

/* Aviso permanente no formulário de agendar quando tipo = Depoimento
   especial (Lei 13.431/2017) — mesmo tratamento visual do aviso D8 de
   ausências (.sgcp-ausencias__impacto-aviso). */
.sgcp-agenda__aviso-dep-especial {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  background: var(--danger-soft);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin: 10px 0;
}

.sgcp-agenda__aviso-dep-especial-icone {
  color: var(--danger-text);
  flex: none;
  margin-top: 1px;
}

.sgcp-agenda__aviso-dep-especial span:last-child {
  font: 400 12.5px/1.5 var(--font);
  color: var(--danger-text);
}

.sgcp-agenda__checklist-titulo {
  font: 600 11px var(--font);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 7px;
}

.sgcp-agenda__checklist-item {
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 5px 0;
  border-top: 1px solid var(--border);
}

.sgcp-agenda__checklist-checkbox {
  width: 14px;
  height: 14px;
  accent-color: var(--success);
  cursor: pointer;
  flex: none;
}

.sgcp-agenda__checklist-icone--ok {
  color: var(--success);
  flex: none;
}

.sgcp-agenda__checklist-icone--pendente {
  color: var(--warning);
  flex: none;
}

.sgcp-agenda__checklist-texto {
  font: 400 12.5px var(--font);
  color: var(--text-1);
}

.sgcp-agenda__checklist-texto--concluido {
  color: var(--text-2);
}

/* ---- Responsivo ----
   `.sgcp-agenda__wrap` (`1.35fr 1fr`, calendário + lateral do dia) não tinha
   nenhum @media (DBH-RESP-006 — lacuna sistêmica de responsividade, mesma
   causa raiz de RESP-001..005). Mesmo breakpoint já convencionado em
   dashboard.css/ausencias.css/admin.css/auth.css. */
@media (max-width: 900px) {
  .sgcp-agenda__wrap {
    grid-template-columns: 1fr;
  }
}
