/* public/widgets/booking.css */
/* Минимальные стили под UX прототипа (Bootstrap 5 уже подключен в проекте) */

:root{
  --bw-border: #e9ecef;
  --bw-muted: #6c757d;
}

#bookingModal .modal-body{
  padding-top: 12px;
}

.bw-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 992px){
  .bw-grid{
    grid-template-columns: 360px 1fr;
    align-items: start;
  }
}

/* Верхняя панель (город + переключение месяца) */
.bw-top{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.bw-monthbar{
  display: grid;
  grid-template-columns: 38px 1fr 38px;
  gap: 8px;
  align-items: center;
}

.bw-monthtitle{
  text-align: center;
  font-weight: 600;
}

.bw-monthbtn{
  width: 38px;
  height: 38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--bw-border);
  background: #fff;
  border-radius: 8px;
  cursor: pointer;
}
.bw-monthbtn:hover{
  background:#f8f9fa;
}

/* Календарь */
.bw-calendar{
  border: 1px solid var(--bw-border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.bw-cal-head{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: #f8f9fa;
  border-bottom: 1px solid var(--bw-border);
  font-size: 12px;
  color: var(--bw-muted);
}
.bw-cal-head div{
  padding: 10px 8px;
  text-align: center;
}

.bw-cal-body{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.bw-day{
  min-height: 44px;
  padding: 8px 6px;
  border-right: 1px solid var(--bw-border);
  border-bottom: 1px solid var(--bw-border);
  font-size: 13px;
  display:flex;
  align-items:center;
  justify-content:center;
  user-select:none;
  background:#fff;
  color:#212529;
}
.bw-day:nth-child(7n){
  border-right: none;
}

.bw-day.is-out{
  background:#fcfcfc;
  color:#c0c4c8;
}

.bw-day.is-disabled{
  opacity: .45;
  cursor: not-allowed;
}

.bw-day.is-active{
  cursor: pointer;
  background: #fff;
  border-color: #dbe5ff;
}

.bw-day.is-active:hover{
  background: #f2f6ff;
}

.bw-day.is-selected{
  background: #0d6efd;
  color: #fff;
  font-weight: 600;
}

/* Правая часть */
.bw-section{
  border-top: 1px solid var(--bw-border);
  padding-top: 12px;
}

.bw-section:first-child{
  border-top: none;
  padding-top: 0;
}

.bw-label{
  font-weight: 600;
  margin-bottom: 8px;
}

.bw-times{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.bw-timebtn{
  border: 1px solid #b9d0ff;
  background: #fff;
  color: #0d6efd;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 13px;
  cursor: pointer;
}
.bw-timebtn:hover{
  background: #f2f6ff;
}
.bw-timebtn.is-selected{
  background: #0d6efd;
  color: #fff;
  border-color: #0d6efd;
}

.bw-formrow{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 768px){
  .bw-formrow{
    grid-template-columns: 1fr 1fr;
  }
}

.bw-summary{
  background: #dff6ff;
  border: 1px solid #bdeaff;
  color: #0b4a5a;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
}

.bw-error{
  background: #fde2e2;
  border: 1px solid #f5b7b7;
  color: #7a1a1a;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
}

.bw-muted{
  color: var(--bw-muted);
  font-size: 13px;
}

.bw-btnwide{
  width: 100%;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 600;
}

.bw-loading{
  display:flex;
  gap:10px;
  align-items:center;
  color: var(--bw-muted);
  font-size: 13px;
}
.bw-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #0d6efd;
  animation: bwPulse 1s infinite ease-in-out;
}
.bw-dot:nth-child(2){ animation-delay: .15s; }
.bw-dot:nth-child(3){ animation-delay: .3s; }

@keyframes bwPulse{
  0%, 100%{ opacity: .25; transform: scale(.9); }
  50%{ opacity: 1; transform: scale(1); }
}

/* Guest PIN auth block */
.bw-authgrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: end;
}

@media (min-width: 768px){
  .bw-authgrid{
    grid-template-columns: 1fr 220px;
  }
}

.bw-auth-actions .bw-btnwide{
  padding: 9px 12px;
}

.bw-authed{
  border: 1px solid var(--bw-border);
  border-radius: 10px;
  padding: 12px;
  background: #fff;
}
