/* ============================================================
   agenda.css — Estilos da Agenda (estilo Google Calendar) e
   também usados pela tela de Histórico de Sessões.
   ============================================================ */

.agenda-header { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.agenda-nav { display:flex; align-items:center; gap:6px; }
.agenda-nav button {
  width:36px; height:36px; border-radius:9px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text-soft); display:flex; align-items:center; justify-content:center; transition:0.2s;
}
.agenda-nav button:hover { border-color:var(--violet); color:var(--violet); }
.agenda-current-label { font-size:17px; font-weight:600; min-width:200px; text-transform:capitalize; }
.view-switch { display:flex; background:var(--surface-2); border:1px solid var(--border); border-radius:10px; padding:3px; }
.view-switch button { padding:7px 16px; border:none; background:none; color:var(--text-soft); font-size:13px; font-weight:600; border-radius:7px; transition:0.2s; }
.view-switch button.active { background:var(--surface); color:var(--violet); box-shadow:var(--shadow-sm); }

/* ---- Grid mês ---- */
.cal-month { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--border-2); }
.cal-weekdays span { padding:10px; text-align:center; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-faint); }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.cal-day { min-height:104px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); padding:8px; position:relative; transition:background 0.15s; }
.cal-day:hover { background:var(--surface-2); }
.cal-day.other { background:var(--bg); opacity:0.5; }
.cal-day.today .cal-daynum { background:var(--violet); color:#fff; }
.cal-daynum { font-size:12.5px; font-weight:600; width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:var(--text-soft); }
.cal-event { font-size:11px; font-weight:600; padding:3px 7px; border-radius:5px; margin-top:4px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-event.s-agendada  { background:var(--blue-bg); color:var(--blue); }
.cal-event.s-confirmada{ background:var(--green-bg); color:var(--green); }
.cal-event.s-realizada { background:var(--border); color:var(--text-soft); }
.cal-event.s-cancelada { background:var(--red-bg); color:var(--red); text-decoration:line-through; }

/* ---- Visão dia/semana ---- */
.cal-week { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.cal-week-cols { display:grid; }
.cal-slot { display:flex; gap:0; border-bottom:1px solid var(--border); min-height:56px; }
.cal-slot-time { width:64px; flex-shrink:0; padding:6px 10px; font-size:11.5px; color:var(--text-faint); text-align:right; border-right:1px solid var(--border); }
.cal-slot-body { flex:1; padding:5px; display:flex; flex-direction:column; gap:4px; }
.cal-appt { background:linear-gradient(135deg,var(--violet),var(--violet-mid)); color:#fff; border-radius:7px; padding:7px 10px; cursor:pointer; transition:transform 0.15s; }
.cal-appt:hover { transform:translateX(2px); }
.cal-appt .t { font-size:12.5px; font-weight:700; }
.cal-appt .s { font-size:11px; opacity:0.8; }

/* Filtros do histórico */
.filters-row { display:grid; grid-template-columns:repeat(4,1fr) auto; gap:12px; align-items:flex-end; margin-bottom:18px; }
@media (max-width:900px){
  .filters-row { grid-template-columns:1fr 1fr; }
  .cal-day { min-height:72px; }
}
