<turbo-stream action="replace" target="booking_time_slots"><template>
  <turbo-frame id="booking_time_slots">
    <div class="glass-card rounded-2xl p-4 sm:p-6"
     data-testid="booking-time-slots"
     data-controller="booking-time-slots-component--booking-time-slots-component"
     data-booking-time-slots-component--booking-time-slots-component-selected-classes-value="ring-2 ring-secondary-500 bg-secondary-50/80 dark:bg-secondary-900/30 border-secondary-500 shadow-md shadow-secondary-500/15" data-booking-time-slots-component--booking-time-slots-component-step-mode-value="false">

  <h3 class="text-base font-semibold text-gray-900 dark:text-white mb-1">
    Horarios disponibles
  </h3>
  <p class="text-sm text-gray-500 dark:text-gray-400 mb-4">
    04 de junio de 2026
  </p>

    <div class="space-y-3" data-testid="time-slots-grouped">

        <details class="group" open data-testid="time-period-morning">
          <summary class="flex items-center gap-2 cursor-pointer py-2 select-none list-none [&::-webkit-details-marker]:hidden text-sm font-medium text-gray-700 dark:text-gray-300">
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M12 2v8"></path><path d="m4.93 10.93 1.41 1.41"></path><path d="M2 18h2"></path><path d="M20 18h2"></path><path d="m19.07 10.93-1.41 1.41"></path><path d="M22 22H2"></path><path d="m8 6 4-4 4 4"></path><path d="M16 18a4 4 0 0 0-8 0"></path></svg>
            Mañana
            <span class="text-gray-400 text-xs">(12)</span>
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 ml-auto text-gray-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg>
          </summary>

          <div class="grid grid-cols-2 sm:grid-cols-3 gap-2 mt-2">
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-540">
                  9:00 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-555">
                  9:15 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-570">
                  9:30 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-585">
                  9:45 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-600">
                  10:00 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-615">
                  10:15 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-630">
                  10:30 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-645">
                  10:45 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-660">
                  11:00 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-675">
                  11:15 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-690">
                  11:30 AM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-705">
                  11:45 AM
                </div>
          </div>
        </details>

        <details class="group" open data-testid="time-period-afternoon">
          <summary class="flex items-center gap-2 cursor-pointer py-2 select-none list-none [&::-webkit-details-marker]:hidden text-sm font-medium text-gray-700 dark:text-gray-300">
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>
            Tarde
            <span class="text-gray-400 text-xs">(20)</span>
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 ml-auto text-gray-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg>
          </summary>

          <div class="grid grid-cols-2 sm:grid-cols-3 gap-2 mt-2">
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-720">
                  12:00 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-735">
                  12:15 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-750">
                  12:30 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-765">
                  12:45 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-780">
                  1:00 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-795">
                  1:15 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-810">
                  1:30 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-825">
                  1:45 PM
                </div>
                <div class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-gray-100 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed line-through"
                     title="Este horario ya no está disponible"
                     data-testid="slot-2026-06-04-900">
                  3:00 PM
                </div>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-915"
                        data-end-minutes="925"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  3:15 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-930"
                        data-end-minutes="940"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  3:30 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-945"
                        data-end-minutes="955"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  3:45 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-960"
                        data-end-minutes="970"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  4:00 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-975"
                        data-end-minutes="985"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  4:15 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-990"
                        data-end-minutes="1000"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  4:30 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1005"
                        data-end-minutes="1015"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  4:45 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1020"
                        data-end-minutes="1030"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  5:00 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1035"
                        data-end-minutes="1045"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  5:15 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1050"
                        data-end-minutes="1060"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  5:30 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1065"
                        data-end-minutes="1075"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  5:45 PM
                </button>
          </div>
        </details>

        <details class="group" open data-testid="time-period-night">
          <summary class="flex items-center gap-2 cursor-pointer py-2 select-none list-none [&::-webkit-details-marker]:hidden text-sm font-medium text-gray-700 dark:text-gray-300">
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg>
            Noche
            <span class="text-gray-400 text-xs">(2)</span>
            <svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 ml-auto text-gray-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg>
          </summary>

          <div class="grid grid-cols-2 sm:grid-cols-3 gap-2 mt-2">
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1080"
                        data-end-minutes="1090"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  6:00 PM
                </button>
                <button type="button"
                        class="rounded-lg px-3 py-2.5 text-center text-sm font-medium transition-colors bg-white/60 dark:bg-gray-700/60 text-gray-900 dark:text-white border border-gray-200/60 dark:border-gray-600/60 hover:border-primary-500 hover:bg-primary-50/80 dark:hover:bg-primary-900/30 focus:ring-2 focus:ring-primary-500 focus:outline-none cursor-pointer "
                        
                        data-testid="slot-2026-06-04-1095"
                        data-end-minutes="1105"
                        
                        data-action="click->booking-time-slots-component--booking-time-slots-component#selectSlot">
                  6:15 PM
                </button>
          </div>
        </details>
    </div>
</div>
</turbo-frame></template></turbo-stream>