/* =============================================
   BASE
============================================= */
.fitfox-wrap {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: #111827;
  box-sizing: border-box;
}
.fitfox-wrap *, .fitfox-wrap *::before, .fitfox-wrap *::after { box-sizing: inherit; }
.fitfox-status { margin: 8px 0; color: #6b7280; font-size: 14px; min-height: 20px; }
.fitfox-empty { padding: 32px 16px; text-align: center; color: #6b7280; font-size: 15px; }

/* =============================================
   BOTONES
============================================= */
.fitfox-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 16px; height: 42px; border-radius: 8px; border: 1px solid #d1d5db;
  background: #f3f4f6; color: #374151; font-size: 14px; font-weight: 700;
  line-height: 1; text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: filter .15s ease, background .15s ease;
}
.fitfox-btn--block { width: 100%; }
.fitfox-btn--primary { background: #16a34a; border-color: #16a34a; color: #fff; }
.fitfox-btn--primary:hover { background: #15803d; border-color: #15803d; color: #fff; }
.fitfox-btn--outline { background: #fff; border-color: #d1d5db; color: #374151; }
.fitfox-btn--outline:hover { background: #f9fafb; }
.fitfox-btn--sm { height: 34px; padding: 0 12px; font-size: 13px; }
.fitfox-btn--showmore { height: 46px; padding: 0 32px; }
.fitfox-btn[disabled], .fitfox-btn:disabled {
  background: #f3f4f6; border-color: #e5e7eb; color: #9ca3af; cursor: not-allowed; opacity: .7;
}

/* =============================================
   CHIPS
============================================= */
.fitfox-chip {
  display: inline-flex; align-items: center; padding: 4px 9px;
  border-radius: 6px; font-size: 12px; font-weight: 700;
  color: #fff; background: #6b7280; white-space: nowrap;
}
.fitfox-chip--sm { font-size: 11px; padding: 3px 7px; border-radius: 5px; }

/* =============================================
   PAGINACIÓN
============================================= */
.fitfox-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 24px; flex-wrap: wrap; }
.fitfox-page-btn {
  padding: 6px 11px; border: 1px solid #ddd; background: #fff;
  cursor: pointer; border-radius: 6px; font-size: 14px; font-weight: 600; color: #374151;
}
.fitfox-page-btn:hover { background: #f3f4f6; }
.fitfox-page-btn.active { background: #16a34a; color: #fff; border-color: #16a34a; }

/* =============================================
   CABECERA CALENDARIO (mes + nav)
============================================= */
.fitfox-cal-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin: 0 0 14px;
}
.fitfox-cal-title {
  flex: 1; text-align: center; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; font-size: 18px;
}
.fitfox-cal-nav {
  border: 1px solid #dcdcde; background: #fff; border-radius: 6px;
  padding: 8px 12px; cursor: pointer; font-weight: 600; text-transform: uppercase;
  font-size: 12px; color: #555; white-space: nowrap;
}
.fitfox-cal-nav:hover { background: #f6f7f7; }

/* =============================================
   LAYOUT DOBLE (calendario + sidebar)
============================================= */
.fitfox-layout { display: grid; gap: 16px; }
.fitfox-layout--solo { grid-template-columns: 1fr; }
.fitfox-layout--doble { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.fitfox-layout--doble > * { min-width: 0; }

@media (max-width: 980px) {
  .fitfox-layout--doble { grid-template-columns: 1fr; }
}

/* =============================================
   SIDEBAR (calendario_lista)
============================================= */
.fitfox-side {
  border: 1px solid #dcdcde; border-radius: 10px; padding: 12px; background: #fff;
}
.fitfox-side-scroll { overflow: auto; max-height: 650px; }
.fitfox-side-selected {
  display: flex; gap: 12px; align-items: center;
  padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid #eee;
}
.fitfox-date-badge {
  width: 54px; min-width: 54px; height: 60px; border-radius: 6px;
  background: #0a7a1f; color: #fff; display: flex; flex-direction: column;
  align-items: center; justify-content: center; font-weight: 800;
  line-height: 1.05; text-transform: uppercase;
}
.fitfox-side-selected-title { font-weight: 800; }
.fitfox-side-selected-sub { color: #666; font-size: 12px; margin-top: 2px; }
.fitfox-side-list { display: flex; flex-direction: column; gap: 8px; }

.fitfox-item {
  border: 1px solid #eee; border-radius: 10px; padding: 10px;
  display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
}
.fitfox-item:hover { background: #f9fafb; }
.fitfox-badge {
  width: 52px; min-width: 52px; height: 48px; border-radius: 8px;
  display: flex; flex-direction: column; justify-content: center;
  align-items: center; font-weight: 800; line-height: 1.05;
}
.fitfox-badge div:first-child { font-size: 16px; }
.fitfox-badge div:last-child { font-size: 12px; opacity: .95; }
.fitfox-item-main { min-width: 0; }
.fitfox-item-title { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fitfox-item-sub { font-size: 12px; color: #666; margin-top: 2px; }
.fitfox-badge--empty { background: #fff; color: #111827; border: 1px solid #e5e7eb; }

/* =============================================
   FULLCALENDAR TWEAKS
============================================= */
.fitfox-cal { min-width: 0; overflow: hidden; }
.fitfox-wrap .fc { background: #fff; border: 1px solid #dcdcde; border-radius: 10px; padding: 10px; max-width: 100%; }
.fitfox-wrap .fc .fc-toolbar { display: none; }
.fitfox-wrap .fc .fc-daygrid-day-number { color: #111; text-decoration: none; }

@media (max-width: 767px) {
  .fitfox-wrap { overflow-x: hidden; }
  .fitfox-layout--doble { grid-template-columns: 1fr !important; }
  .fitfox-cal { width: 100%; overflow: hidden; }
  .fitfox-cal .fc-scrollgrid { width: 100% !important; }
  .fitfox-cal .fc-view-harness { min-height: 420px; }
  .fitfox-side { width: 100%; }
  .fitfox-item-title, .fitfox-side-selected-title { white-space: normal; overflow: visible; text-overflow: clip; word-break: break-word; }
}

/* =============================================
   FILTROS COMUNES
============================================= */
.fitfox-filters--cards,
.fitfox-filters--listado {
  display: grid; gap: 14px; align-items: end; margin: 0 0 24px;
  padding: 18px; background: #fff; border: 1px solid #e5e7eb;
  border-radius: 14px; box-shadow: 0 4px 16px rgba(15,23,42,.05);
}
.fitfox-filters--cards { grid-template-columns: repeat(6, minmax(0,1fr)); }
.fitfox-filters--listado { grid-template-columns: repeat(4, minmax(0,1fr)); }
.fitfox-filters--cards > div,
.fitfox-filters--listado > div { min-width: 0; }

.fitfox-filters--cards label,
.fitfox-filters--listado label {
  display: block; margin-bottom: 7px; font-size: 13px; font-weight: 700; color: #1f2937;
}
.fitfox-filters--cards input, .fitfox-filters--cards select,
.fitfox-filters--listado input, .fitfox-filters--listado select {
  width: 100%; height: 42px; padding: 0 12px;
  border: 1px solid #d1d5db; border-radius: 10px; background: #fff;
  color: #111827; font-size: 14px; outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.fitfox-filters--cards input:focus, .fitfox-filters--cards select:focus,
.fitfox-filters--listado input:focus, .fitfox-filters--listado select:focus {
  border-color: #16a34a; box-shadow: 0 0 0 3px rgba(22,163,74,.12);
}
.fitfox-filters-actions { display: flex; align-items: flex-end; }
.fitfox-filters-actions .fitfox-btn { width: 100%; }

@media (max-width: 1100px) {
  .fitfox-filters--cards { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .fitfox-filters--listado { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .fitfox-filters--cards,
  .fitfox-filters--listado { grid-template-columns: 1fr; }
}

/* =============================================
   FICHA ACTIVIDAD (cards)
============================================= */
.fitfox-grid--cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.fitfox-card {
  display: flex; flex-direction: column; background: #fff;
  border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.fitfox-card-media {
  position: relative; aspect-ratio: 16/9;
  background: #e5e7eb center/cover no-repeat;
}
.fitfox-card-media::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,0));
}
.fitfox-card-chips { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; flex-wrap: wrap; z-index: 2; }
.fitfox-card-date {
  position: absolute; left: 50%; bottom: -24px; transform: translateX(-50%);
  width: 58px; height: 58px; border-radius: 8px; background: #d97706; color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-weight: 800; z-index: 2; box-shadow: 0 8px 20px rgba(0,0,0,.15);
}
.fitfox-card-date-day { font-size: 20px; line-height: 1; }
.fitfox-card-date-mon { font-size: 11px; line-height: 1.2; text-transform: uppercase; }
.fitfox-card-body { padding: 36px 18px 14px; flex: 1; display: flex; flex-direction: column; }
.fitfox-card-title { font-size: 17px; font-weight: 800; text-align: center; margin: 0 0 10px; color: #1f2937; }
.fitfox-card-excerpt { font-size: 13px; line-height: 1.55; color: #6b7280; text-align: center; margin: 0 0 14px; }
.fitfox-card-meta { border-top: 1px solid #f3f4f6; padding-top: 12px; display: grid; gap: 8px; margin-top: auto; }
.fitfox-card-meta-row { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #374151; }
.fitfox-card-meta-label { min-width: 80px; color: #9ca3af; font-weight: 600; }
.fitfox-card-actions { padding: 0 18px 18px; }

@media (max-width: 1024px) { .fitfox-grid--cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .fitfox-grid--cards { grid-template-columns: 1fr; } }

/* =============================================
   LISTADO (lista con imagen)
============================================= */
.fitfox-listado-title {
  font-size: 22px; font-weight: 800; margin: 0 0 20px; color: #111827;
}
.fitfox-listado { display: flex; flex-direction: column; gap: 0; }
.fitfox-listado-item {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 18px 0; border-bottom: 1px solid #f3f4f6;
}
.fitfox-listado-item:last-child { border-bottom: none; }
.fitfox-listado-img {
  width: 80px; min-width: 80px; height: 80px; border-radius: 10px;
  background: #e5e7eb center/cover no-repeat; flex-shrink: 0;
}
.fitfox-listado-img--empty { background: #f3f4f6; }
.fitfox-listado-body { flex: 1; min-width: 0; }
.fitfox-listado-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }
.fitfox-listado-title { font-size: 17px; font-weight: 800; color: #111827; margin-bottom: 6px; }
.fitfox-listado-meta { font-size: 13px; color: #6b7280; margin-bottom: 4px; display: flex; align-items: center; gap: 5px; }
.fitfox-listado-cta { margin: 6px 0; }
.fitfox-listado-desc { font-size: 13px; color: #6b7280; line-height: 1.55; margin: 6px 0 0; }

@media (max-width: 600px) {
  .fitfox-listado-img { width: 60px; min-width: 60px; height: 60px; }
}

/* =============================================
   PROXIMOS (mini cal + lista detallada)
============================================= */
.fitfox-proximos-layout {
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start;
}
.fitfox-proximos-list {
  border: 1px solid #e5e7eb; border-radius: 12px; background: #fff;
  overflow-y: auto; max-height: 600px;
}
.fitfox-proximos-list-inner { display: flex; flex-direction: column; }
.fitfox-proximos-item {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 16px; border-bottom: 1px solid #f3f4f6; cursor: default;
}
.fitfox-proximos-item:last-child { border-bottom: none; }
.fitfox-proximos-item:hover { background: #fafafa; }
.fitfox-proximos-badge {
  width: 52px; min-width: 52px; height: 52px; border-radius: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-weight: 800; flex-shrink: 0;
}
.fitfox-proximos-badge-day { font-size: 18px; line-height: 1; }
.fitfox-proximos-badge-mon { font-size: 11px; line-height: 1.2; text-transform: uppercase; }
.fitfox-proximos-body { flex: 1; min-width: 0; }
.fitfox-proximos-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
.fitfox-proximos-title { font-weight: 700; font-size: 15px; color: #111827; margin-bottom: 4px; }
.fitfox-proximos-meta { font-size: 12px; color: #6b7280; margin-bottom: 3px; display: flex; align-items: center; gap: 4px; }
.fitfox-proximos-icon { font-size: 12px; }
.fitfox-proximos-desc { font-size: 12px; color: #9ca3af; margin-top: 4px; line-height: 1.5; }

@media (max-width: 900px) {
  .fitfox-proximos-layout { grid-template-columns: 1fr; }
  .fitfox-proximos-list { max-height: 400px; }
}

/* =============================================
   DESTACADAS (grid masonry con imagen)
============================================= */
.fitfox-destacadas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 240px;
  gap: 10px;
}
/* Patrón masonry: 1a y 4a card más altas */
.fitfox-dest-item:nth-child(1),
.fitfox-dest-item:nth-child(4) {
  grid-row: span 2;
}
.fitfox-dest-item {
  border-radius: 12px; overflow: hidden; position: relative;
}
.fitfox-dest-img {
  width: 100%; height: 100%; background: #1f2937 center/cover no-repeat;
  position: relative; display: flex; flex-direction: column; justify-content: flex-end;
}
.fitfox-dest-img::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.1) 60%, transparent 100%);
}
.fitfox-dest-badge {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  width: 48px; height: 56px; border-radius: 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #fff; font-weight: 800; box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.fitfox-dest-badge-day { font-size: 18px; line-height: 1; }
.fitfox-dest-badge-mon { font-size: 11px; text-transform: uppercase; }
.fitfox-dest-overlay {
  position: relative; z-index: 2; padding: 12px 14px 14px; color: #fff;
}
.fitfox-dest-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
.fitfox-dest-title { font-size: 15px; font-weight: 800; line-height: 1.3; }
.fitfox-dest-desc { font-size: 12px; opacity: .85; margin-top: 4px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fitfox-destacadas-footer { text-align: center; margin-top: 20px; }

@media (max-width: 900px) {
  .fitfox-destacadas-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
  .fitfox-dest-item:nth-child(1), .fitfox-dest-item:nth-child(4) { grid-row: span 1; }
}
@media (max-width: 600px) {
  .fitfox-destacadas-grid { grid-template-columns: 1fr; grid-auto-rows: 200px; }
}

/* =============================================
   BONOS / ENTRADAS
============================================= */
.fitfox-bonos-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px;
}
.fitfox-bono-card {
  display: flex; flex-direction: column; background: #fff;
  border: 1px solid #e5e7eb; border-radius: 14px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
.fitfox-bono-card-top { position: relative; }
.fitfox-bono-img {
  width: 100%; aspect-ratio: 4/3; background: #e5e7eb center/cover no-repeat;
}
.fitfox-bono-img--empty { background: linear-gradient(135deg, #d1fae5, #a7f3d0); }
.fitfox-bono-price-badge {
  position: absolute; bottom: -24px; left: 50%; transform: translateX(-50%);
  width: 72px; height: 72px; border-radius: 50%; background: #2563eb;
  color: #fff; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(37,99,235,.35); z-index: 2; text-align: center;
}
.fitfox-bono-price-amount { font-size: 17px; font-weight: 900; line-height: 1; }
.fitfox-bono-price-label { font-size: 10px; opacity: .85; margin-top: 2px; }
.fitfox-bono-card-body { padding: 36px 18px 14px; flex: 1; }
.fitfox-bono-name {
  font-size: 15px; font-weight: 800; text-align: center; color: #2563eb;
  text-transform: uppercase; letter-spacing: .03em; margin: 0 0 14px;
}
.fitfox-bono-features {
  list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px;
}
.fitfox-bono-features li { font-size: 13px; color: #374151; padding-left: 18px; position: relative; }
.fitfox-bono-features li::before {
  content: '✓'; position: absolute; left: 0; color: #16a34a; font-weight: 700;
}
.fitfox-bono-desc { font-size: 13px; color: #6b7280; line-height: 1.55; margin: 0; }
.fitfox-bono-card-actions {
  padding: 0 18px 18px; display: flex; flex-direction: column; gap: 8px; margin-top: auto;
}

@media (max-width: 1100px) { .fitfox-bonos-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .fitfox-bonos-grid { grid-template-columns: 1fr; } }

/* =============================================
   HORARIO SEMANAL
============================================= */
.fitfox-wrap--horario {
  border: 1px solid #e5e7eb; border-radius: 14px; padding: 0; background: #fff;
  overflow: hidden;
}
.fitfox-horario-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px; border-bottom: 1px solid #f3f4f6;
}
.fitfox-horario-title { font-size: 18px; font-weight: 800; margin: 0; }
.fitfox-horario-close {
  width: 30px; height: 30px; border: none; background: none;
  cursor: pointer; font-size: 18px; color: #6b7280; border-radius: 6px; display: flex; align-items: center; justify-content: center;
}
.fitfox-horario-close:hover { background: #f3f4f6; }
.fitfox-horario-filters {
  display: flex; align-items: flex-end; gap: 14px; padding: 14px 20px;
  border-bottom: 1px solid #f3f4f6; flex-wrap: wrap;
}
.fitfox-horario-filter-group { display: flex; flex-direction: column; gap: 6px; }
.fitfox-horario-filter-group label { font-size: 13px; font-weight: 700; color: #374151; }
.fitfox-horario-select {
  min-width: 220px; height: 40px; padding: 0 12px;
  border: 1px solid #d1d5db; border-radius: 8px; font-size: 14px;
  background: #fff; color: #111827; outline: none;
}
.fitfox-horario-select:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.fitfox-horario-clear {
  height: 40px; padding: 0 14px; border: none; background: none;
  color: #6b7280; font-size: 13px; font-weight: 600; cursor: pointer; border-radius: 6px;
}
.fitfox-horario-clear:hover { background: #f3f4f6; color: #374151; }
.fitfox-horario-table-wrap { padding: 0; }
.fitfox-horario-scroll { overflow-x: auto; }
.fitfox-horario-tbl { width: 100%; border-collapse: collapse; min-width: 600px; }
.fitfox-horario-th-hora, .fitfox-horario-td-hora {
  width: 90px; min-width: 90px; padding: 10px 16px; font-size: 13px;
  font-weight: 700; color: #374151; text-align: left; white-space: nowrap;
  border-bottom: 1px solid #f3f4f6;
}
.fitfox-horario-th-hora { background: #fafafa; position: sticky; left: 0; z-index: 1; }
.fitfox-horario-td-hora { background: #fafafa; position: sticky; left: 0; z-index: 1; }
.fitfox-horario-th-dia {
  padding: 12px 8px; font-size: 13px; font-weight: 700; color: #374151;
  text-align: center; background: #fafafa; border-bottom: 2px solid #e5e7eb;
  white-space: nowrap;
}
.fitfox-horario-td-clase { padding: 6px 6px; text-align: center; border-bottom: 1px solid #f9fafb; }
.fitfox-horario-td-empty { padding: 6px; border-bottom: 1px solid #f9fafb; min-width: 90px; }
.fitfox-horario-chip {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 6px 10px; border-radius: 6px; color: #fff; font-size: 12px;
  font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  white-space: nowrap; width: 100%; min-height: 30px;
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.fitfox-horario-tbl tbody tr:hover td { background: #f9fafb; }
.fitfox-horario-tbl tbody tr:hover .fitfox-horario-td-hora { background: #f3f4f6; }

@media (max-width: 700px) {
  .fitfox-horario-filters { flex-direction: column; align-items: stretch; }
  .fitfox-horario-select { min-width: unset; width: 100%; }
}

/* =============================================
   AGENDA (días horizontales + lista de eventos)
============================================= */
.fitfox-wrap--agenda { background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; overflow: hidden; }

/* Barra de días */
.fitfox-agenda-days-bar {
  display: flex; align-items: stretch;
  border-bottom: 1px solid #f3f4f6; background: #fff; padding: 0;
}
.fitfox-agenda-days-arrow {
  width: 36px; min-width: 36px; border: none; background: none;
  font-size: 22px; color: #9ca3af; cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: color .15s;
}
.fitfox-agenda-days-arrow:hover { color: #374151; background: #f9fafb; }
.fitfox-agenda-days-track-wrap { flex: 1; overflow: hidden; }
.fitfox-agenda-days-track {
  display: flex; gap: 0; padding: 6px 4px;
  overflow-x: auto; scrollbar-width: none;
  width: 100%;
}
.fitfox-agenda-days-track::-webkit-scrollbar { display: none; }

.fitfox-agenda-day {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  flex: 1; min-width: 44px; padding: 6px 4px 8px;
  border: none; background: none; cursor: pointer; border-radius: 10px;
  transition: background .15s;
}
.fitfox-agenda-day:hover { background: #f3f4f6; }
.fitfox-agenda-day.is-selected { background: #111827; }
.fitfox-agenda-day.is-selected .fitfox-agenda-day-name,
.fitfox-agenda-day.is-selected .fitfox-agenda-day-num { color: #fff; }
.fitfox-agenda-day-name { font-size: 11px; font-weight: 700; color: #9ca3af; text-transform: uppercase; }
.fitfox-agenda-day-num  { font-size: 18px; font-weight: 800; color: #111827; line-height: 1.1; }
.fitfox-agenda-day.is-today .fitfox-agenda-day-num { color: #ef4444; }
.fitfox-agenda-day-dots { display: flex; gap: 3px; height: 6px; align-items: center; justify-content: center; }
.fitfox-agenda-day-dots i {
  display: block; width: 5px; height: 5px; border-radius: 50%;
  background: #d1d5db;
}
.fitfox-agenda-day.is-selected .fitfox-agenda-day-dots i { background: rgba(255,255,255,.5); }

/* Título */
.fitfox-agenda-heading {
  font-size: 14px; font-weight: 600; color: #6b7280;
  padding: 14px 20px 4px;
}

/* Lista de eventos */
.fitfox-agenda-list { padding: 0 0 4px; }

.fitfox-agenda-item {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 16px 20px; border-bottom: 1px solid #f9fafb;
  transition: background .12s;
}
.fitfox-agenda-item:last-child { border-bottom: none; }
.fitfox-agenda-item:hover { background: #fafafa; }

.fitfox-agenda-item-img {
  width: 64px; min-width: 64px; height: 64px; border-radius: 10px;
  background: #6b7280 center/cover no-repeat; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.fitfox-agenda-item-img span {
  font-size: 24px; font-weight: 900; color: rgba(255,255,255,.85);
}

.fitfox-agenda-item-body { flex: 1; min-width: 0; }
.fitfox-agenda-item-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 5px; }
.fitfox-agenda-item-title { font-size: 16px; font-weight: 800; color: #111827; margin-bottom: 5px; }
.fitfox-agenda-item-meta { font-size: 13px; color: #6b7280; margin-bottom: 3px; }
.fitfox-agenda-item-desc {
  font-size: 13px; color: #9ca3af; margin-top: 5px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

.fitfox-agenda-item-actions {
  display: flex; flex-direction: column; justify-content: center;
  gap: 6px; flex-shrink: 0; min-width: 90px;
}
.fitfox-agenda-cta { white-space: nowrap; }

/* Footer show more */
.fitfox-agenda-footer { padding: 16px 20px; display: flex; justify-content: center; }
.fitfox-agenda-showmore {
  width: 100%; max-width: 400px; height: 46px;
  background: #111827; border-color: #111827; color: #fff; border-radius: 8px;
}
.fitfox-agenda-showmore:hover { background: #374151; border-color: #374151; color: #fff; }

@media (max-width: 600px) {
  .fitfox-agenda-item { flex-wrap: wrap; gap: 10px; }
  .fitfox-agenda-item-img { width: 52px; min-width: 52px; height: 52px; }
  .fitfox-agenda-item-actions { flex-direction: row; min-width: unset; }
}
