/* cuerpo-compra */

/* ---------- Mi cuerpo: calendario del ciclo ---------- */
.cal-ciclo { gap: 4px; }
.cal-dia {
  border: 2px solid transparent; background: var(--cs, transparent); color: var(--texto);
  border-radius: 10px; min-height: 48px; min-width: 0; padding: 3px 0 2px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  font: inherit; position: relative; cursor: pointer;
}
.cal-num { font-size: 15px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.cal-marca { font-size: 11px; line-height: 1; height: 12px; }
.cal-dia.registrada { border-color: var(--c); }
.cal-dia.registrada .cal-num { color: var(--c); font-weight: 800; }
.cal-dia.prevista { border-color: var(--c); border-style: dashed; }
.cal-dia.ventana:not(.prevista)::after {
  content: ""; position: absolute; left: 6px; right: 6px; bottom: 2px;
  border-bottom: 2px dashed var(--salud);
}
.cal-dia.retraso { background: var(--aviso-suave); }
.cal-dia.hoy { box-shadow: 0 0 0 2px var(--tarjeta), 0 0 0 4px var(--texto); z-index: 1; }
.cal-dia.hoy .cal-num { font-weight: 800; }
.cal-dia.elegido { outline: 3px solid var(--acento); outline-offset: -1px; z-index: 2; }
.cal-ciclo-lectura { min-height: 1.45em; margin: 10px 0 0; font-size: 15px; font-weight: 600; }

.cal-leyenda { gap: 8px 14px; }
.cal-muestra {
  display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px;
  border: 2px solid transparent; background: var(--cs, transparent); font-size: 11px; position: relative; flex: none;
}
.cal-muestra.registrada { border-color: var(--c); }
.cal-muestra.prevista { border-color: var(--c); border-style: dashed; }
.cal-muestra.ventana::after { content: ""; position: absolute; left: 2px; right: 2px; bottom: 2px; border-bottom: 2px dashed var(--salud); }
.cal-muestra.hoy { box-shadow: 0 0 0 2px var(--texto); }

/* ---------- Compra: evolución del precio ---------- */
.evolucion-precio .cambio-precio { margin: 2px 0 6px; }
