/* ====== Variables ====== */
:root{
  --cal-cell-h: 128px;     /* alto fijo de cada día */
  --cal-cell-h-sm: 108px;  /* alto fijo en móviles */
}

/* ====== Contenedor calendario ====== */
.cal-wrap{border:1px solid #e6eef2;border-radius:.75rem;overflow:hidden;background:#fff}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f7fbfe;border-bottom:1px solid #e6eef2}
.btn-month{display:inline-flex;align-items:center;gap:.4rem}

/* ====== Grid ====== */
.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr)); /* columnas iguales, sin desbordes */
}

/* ====== Cabecera días (Lun, Mar, ...) ====== */
.cal-dow{
  background:#f1f5f9;color:#4b5563;font-weight:600;
  padding:.5rem;border-right:1px solid #e6eef2;border-bottom:1px solid #e6eef2;
  text-align:center;
}

/* ====== Celdas de día (alto y ancho fijos) ====== */
.cal-cell{
  display:flex;                /* para apilar cabecera + lista de eventos */
  flex-direction:column;
  height:var(--cal-cell-h);    /* alto fijo */
  border-right:1px solid #f0f2f5;border-bottom:1px solid #f0f2f5;
  padding:.5rem;
  position:relative;
  cursor:pointer;
  overflow:hidden;             /* evita que el contenido rompa la celda */
}
.cal-cell:last-child{border-right:0}

/* Cabecera visual del día (número) */
.cal-day{font-weight:700;font-size:.95rem}

/* Eventos con scroll interno si hay muchos */
.cal-events{
  margin-top:.25rem;
  overflow:auto;               /* scroll interno si sobrepasa el alto fijo */
  min-height:0;                /* necesario para que overflow funcione en flex */
}

/* Estado de mes y hoy */
.cal-other{background:#fafafa;color:#9aa1a7}
.cal-today{outline:2px solid #0dcaf0; outline-offset:-2px; border-radius:.4rem}

/* ====== Píldoras (no rompen ancho; elipsis) ====== */
.badge-event{
  display:flex; align-items:center; gap:.35rem;
  margin-top:.35rem; padding:.15rem .4rem;
  border-radius:.5rem; border:1px solid #e7eef3;
  font-size:.78rem; width:100%; min-width:0;
  cursor:pointer; background:#fff;
}
.badge-event:hover{ background:#eef7ff; }

/* Chips por tipo */
.badge-event .chip{
  font-size:.68rem; border-radius:.4rem; padding:.05rem .35rem;
  flex:0 0 auto; white-space:nowrap;
}
.chip-viaje{background:#e8f5e9}
.chip-liga{background:#e3f2fd}
.chip-copa{background:#fff3e0}
.chip-evento{background:#f3e5f5}

/* Texto con elipsis */
.badge-event .be-text{
  flex:1 1 auto; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* “+N más…” */
.cal-more{font-size:.8rem;color:#6c757d;margin-top:.25rem}

/* ====== Responsivo ====== */
@media (max-width: 575.98px){
  .cal-cell{height:var(--cal-cell-h-sm);} /* alto fijo en móviles */
  .badge-event{font-size:.74rem}
}
/* ====== Badges estado partido ====== */
.badge-status{font-size:.75rem;padding:.1rem .3rem;border-radius:.4rem}
.badge-status.scheduled{background:#eef2ff;color:#1f3c88}
.badge-status.live{background:#ffe5e5;color:#b50000}
.badge-status.finished{background:#e9f7ef;color:#2e7d32}

/* Punto rojo intermitente (en juego) */
.dot-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e21b1b;margin-right:6px;animation:blinkDot 1s infinite;vertical-align:middle}
@keyframes blinkDot{0%,100%{opacity:.25}50%{opacity:1}}

/* ====== Card de partido dentro del modal ====== */
.match-card{border:1px solid #e6eef2;border-radius:.6rem;overflow:hidden;margin-bottom: 3rem;background:#fff}
.match-card .match-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#e9f6ff;color:#0a304a}
.match-card .match-meta{display:flex;align-items:center;gap:.4rem}
.match-card .match-body{padding:.5rem .75rem}
.match-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.team-box{display:flex;align-items:center;gap:.5rem;width:32%}
.team-box.right{justify-content:flex-end;text-align:right}
.team-logo{height:30px;width:auto;max-width:42px;object-fit:contain}
.score-box{width:20%;text-align:center}
.score-box .score{font-size:1rem;font-weight:600}
.score-box .stadium{font-size:.8rem;color:#4b5563}

/* ====== Badges estado partido (si aún no los tenías) ====== */
.badge-status{font-size:.75rem;padding:.1rem .3rem;border-radius:.4rem}
.badge-status.scheduled{background:#eef2ff;color:#1f3c88}
.badge-status.live{background:#ffe5e5;color:#b50000}
.badge-status.finished{background:#e9f7ef;color:#2e7d32}
.dot-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e21b1b;margin-right:6px;animation:blinkDot 1s infinite;vertical-align:middle}
@keyframes blinkDot{0%,100%{opacity:.25}50%{opacity:1}}

/* ====== Card de partido (Liga/Copa) ====== */
.match-card{border:1px solid #e6eef2;border-radius:.6rem;overflow:hidden;margin-bottom:3rem;background:#fff}
.match-card .match-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#e9f6ff;color:#0a304a}
.match-card .match-meta{display:flex;align-items:center;gap:.4rem}
/* >>> Fondo transparente en el cuerpo (como pides) <<< */
.match-card .match-body{padding:.5rem .75rem;background:transparent}

.match-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.team-box{display:flex;align-items:center;gap:.5rem;width:32%}
.team-box.right{justify-content:flex-end;text-align:right}
.team-logo{height:30px;width:auto;max-width:42px;object-fit:contain}
.score-box{width:20%;text-align:center}
.score-box .score{font-size:1rem;font-weight:600}
.score-box .stadium{font-size:.8rem;color:#4b5563}

/* ====== Separación entre intro y card ====== */
.match-intro{margin-bottom:2rem !important}
