/* ===========================================================================
   AGENDA — o calendário do mandato.

   Componente novo (o design system não tinha grade de calendário). Construído
   só com tokens (cores, espaços, raios) do 01_tokens.css — nada de valor cru
   além do que uma grade 7×N exige.
   =========================================================================== */

.agenda {
  display: flex;
  gap: var(--esp-4);
  align-items: flex-start;
}

.agenda__facetas {
  flex: 0 0 200px;
}

.agenda__corpo {
  flex: 1 1 auto;
  min-width: 0;
}

.agenda__barra {
  display: flex;
  flex-wrap: wrap;
  gap: var(--esp-2);
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--esp-4);
}

.agenda__navegacao {
  display: flex;
  align-items: center;
  gap: var(--esp-2);
}

.agenda__periodo {
  font-weight: var(--peso-semi);
  min-width: 12ch;
  text-align: center;
}

/* Legenda/filtro por visibilidade */
.agenda-legenda {
  display: flex;
  align-items: center;
  gap: var(--esp-2);
  padding: var(--esp-1) 0;
}

.agenda-legenda__cor {
  width: 0.9rem;
  height: 0.9rem;
  border-radius: var(--raio-xs);
  flex: 0 0 auto;
}

.agenda-legenda__cor--publica { background: var(--sgp-info); }
.agenda-legenda__cor--interna { background: var(--sgp-atencao); }

/* Grade do mês/semana */
.agenda-grade {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border: 1px solid var(--cor-borda);
  border-radius: var(--raio-md);
  overflow: hidden;
  background: var(--cor-borda);
  gap: 1px;
}

.agenda-grade--dia {
  grid-template-columns: 1fr;
}

.agenda-grade__cabecalho {
  background: var(--cor-fundo-sutil);
  padding: var(--esp-2);
  text-align: center;
  font-size: 0.8rem;
  font-weight: var(--peso-semi);
  color: var(--cor-texto-suave);
  text-transform: uppercase;
}

.agenda-dia {
  background: var(--cor-fundo);
  min-height: 6.5rem;
  padding: var(--esp-1);
  display: flex;
  flex-direction: column;
  gap: var(--esp-1);
}

.agenda-dia--fora { background: var(--cor-fundo-sutil); }
.agenda-dia--fora .agenda-dia__numero { color: var(--cor-texto-fraco); }

.agenda-dia--hoje { outline: 2px solid var(--cor-acao); outline-offset: -2px; }

.agenda-dia__numero {
  font-size: 0.8rem;
  font-weight: var(--peso-medio);
  color: var(--cor-texto-suave);
}

.agenda-dia--hoje .agenda-dia__numero { color: var(--cor-acao-forte); font-weight: var(--peso-forte); }

/* O "chip" de uma ocorrência */
.agenda-chip {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  border-left: 3px solid var(--sgp-info);
  background: var(--sgp-info-suave);
  color: var(--cor-texto);
  border-radius: var(--raio-xs);
  padding: 2px var(--esp-1);
  font-size: 0.78rem;
  line-height: 1.25;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-chip:hover { filter: brightness(0.97); }
.agenda-chip--interna { border-left-color: var(--sgp-atencao); background: var(--sgp-atencao-suave); }
.agenda-chip--excecao { border-left-style: dashed; }

.agenda-chip__hora {
  font-weight: var(--peso-semi);
  margin-right: 4px;
}

/* Lista de ocorrências da visão de dia/semana quando há muitas */
.agenda-lista-dia {
  display: flex;
  flex-direction: column;
  gap: var(--esp-2);
}

@media (max-width: 720px) {
  .agenda { flex-direction: column; }
  .agenda__facetas { flex: 1 1 auto; width: 100%; }
  .agenda-dia { min-height: 4rem; }
}
