/* Keep this picker independent from legacy full-width appointment cards. */
body.nuevo-ingreso-page .appointment-dates-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.nuevo-ingreso-page .appointment-dates-heading > strong,
body.nuevo-ingreso-page .appointment-hours legend { font-size: 14px; font-weight: 700; color: var(--public-ink, #102445); }
body.nuevo-ingreso-page .appointment-date-navigation { display: flex; gap: 6px; }
body.nuevo-ingreso-page .appointment-date-navigation[hidden] { display: none; }
body.nuevo-ingreso-page .appointment-date-navigation button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #d5dfeb; border-radius: 10px; background: #fff; color: #1257ac; font: inherit; font-size: 20px; cursor: pointer; }
body.nuevo-ingreso-page .appointment-date-navigation button:disabled { opacity: .35; cursor: default; }
body.nuevo-ingreso-page .appointment-dates { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
body.nuevo-ingreso-page .appointment-date { display: grid; place-items: center; gap: 4px; min-width: 0; min-height: 82px; padding: 10px 4px; border: 1px solid #d5dfeb; border-radius: 10px; background: #fff; color: #405775; font: inherit; cursor: pointer; }
body.nuevo-ingreso-page .appointment-date span { font-size: 12px; text-transform: capitalize; }
body.nuevo-ingreso-page .appointment-date strong { font-size: 23px; line-height: 1.15; font-variant-numeric: tabular-nums; }
body.nuevo-ingreso-page .appointment-date small { font-size: 12px; }
body.nuevo-ingreso-page .appointment-date[aria-pressed="true"] { background: #0a59c3; border-color: #0a59c3; color: #fff; }
body.nuevo-ingreso-page .appointment-hours { display: block; min-width: 0; padding: 0; margin: 10px 0 0; border: 0; }
body.nuevo-ingreso-page .appointment-hours legend { margin-bottom: 12px; padding: 0; }
body.nuevo-ingreso-page .appointment-hours-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 10px; }
body.nuevo-ingreso-page .appointment-hour { position: relative; display: block; margin: 0; min-width: 0; cursor: pointer; }
body.nuevo-ingreso-page .appointment-hour input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
body.nuevo-ingreso-page .appointment-hour span { display: grid; place-items: center; box-sizing: border-box; min-height: 48px; padding: 10px 6px; border: 1px solid #c7d5e7; border-radius: 9px; background: #fff; color: #183759; font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
body.nuevo-ingreso-page .appointment-hour input:checked + span { background: #e9f2ff; border-color: #0a59c3; color: #06499f; box-shadow: inset 0 0 0 1px #0a59c3; }
body.nuevo-ingreso-page .appointment-date:hover:not([aria-pressed="true"]),
body.nuevo-ingreso-page .appointment-hour:hover span { border-color: #0a59c3; }
body.nuevo-ingreso-page .appointment-hour input:focus-visible + span,
body.nuevo-ingreso-page .appointment-date:focus-visible,
body.nuevo-ingreso-page .appointment-date-navigation button:focus-visible { outline: 3px solid #80afe8; outline-offset: 3px; }
body.nuevo-ingreso-page .appointment-submit-error { margin-top: 18px; padding: 16px; border: 1px solid #e7b8b8; border-radius: 10px; background: #fff6f6; color: #822d2d; font-size: 14px; }
body.nuevo-ingreso-page .appointment-submit-error p { margin: 6px 0 0; }
@media (max-width: 480px) {
  body.nuevo-ingreso-page .appointment-dates { gap: 6px; }
  body.nuevo-ingreso-page .appointment-hours-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body.nuevo-ingreso-page .reservation-form .appointment-hour { grid-column: auto; }
body.nuevo-ingreso-page .reservation-form .appointment-hours { margin-top: 10px; }
