/* Calendario ------------------------------------------------------------ */
.cmr-calendario { border: 1px solid var(--crema); border-radius: var(--radio); padding: .8rem; background: var(--papel); }

.cmr-cal-cabecera { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }

.cmr-cal-mes { font-family: var(--serif); font-size: 1.1rem; color: var(--verde); }

.cmr-cal-flecha { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--verde); border-radius: 50%; transition: background var(--transicion); }

.cmr-cal-flecha:hover { background: rgba(8, 68, 56, .1); }

.cmr-cal-semana, .cmr-cal-rejilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: .2rem; }

.cmr-cal-semana p { text-align: center; font-weight: 800; font-size: .65rem; letter-spacing: .06em; color: var(--gris); padding-bottom: .2rem; }

.cmr-cal-dia {
  /* Un poco más ancho que alto: los días se leen igual y el calendario deja
     de ser el bloque más alto de la página. */
  aspect-ratio: 7 / 6;
  display: grid;
  place-items: center;
  font-size: .82rem;
  font-weight: 500;
  border-radius: var(--radio);
  border: 1px solid transparent;
  transition: background var(--transicion), color var(--transicion), border-color var(--transicion);
}

/* El estado del día se lee por color Y por peso/opacidad, para que no dependa
   solo del tono. */
.cmr-cal-dia.es-libre    { color: var(--verde); background: rgba(8, 68, 56, .09); border-color: rgba(8, 68, 56, .25); }

.cmr-cal-dia.es-libre:hover { background: var(--verde); color: var(--papel); }

.cmr-cal-dia.es-ajustado { color: var(--gris); background: rgba(255, 165, 0, .18); border-color: rgba(255, 165, 0, .5); }

.cmr-cal-dia.es-lleno    { color: #a3312a; background: rgba(163, 49, 42, .1); text-decoration: line-through; }

.cmr-cal-dia.es-cerrado,
.cmr-cal-dia.es-pasado   { color: var(--gris); opacity: .38; }

.cmr-cal-dia:disabled    { cursor: not-allowed; }

.cmr-cal-dia.es-elegido  { background: var(--verde); color: var(--papel); border-color: var(--verde); font-weight: 700; }

.cmr-cal-hueco { aspect-ratio: 7 / 6; }

.cmr-cal-leyenda { list-style: none; display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .6rem; font-size: .68rem; color: var(--gris); }

.cmr-cal-leyenda li { display: flex; align-items: center; gap: .4rem; }

.cmr-punto { width: .7rem; height: .7rem; border-radius: 50%; }

.cmr-punto.es-libre { background: rgba(8, 68, 56, .35); }

.cmr-punto.es-lleno { background: rgba(163, 49, 42, .45); }

.cmr-punto.es-cerrado { background: rgba(102, 102, 102, .3); }
