/* Basic layout for booking calendar */
.book-session .booking-wrap { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 20px; align-items: start; }
.book-session .calendar-card, .book-session .slots-card { background: #fff; border: 1px solid #eee; border-radius: 8px; padding: 16px; box-shadow: 0 2px 6px rgba(0,0,0,0.04); }
.book-session .cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom: 12px; }
.book-session .cal-header .month-title { font-weight: 600; }
.book-session .cal-header .nav { background: #f3f4f6; border: 1px solid #6c6c6c; border-radius: 6px; padding: 6px 10px; cursor: pointer; }

.book-session .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.book-session .cal-grid .dow { text-align:center; font-weight:600; color:#6b7280; padding: 6px 0; }
.book-session .cal-grid .cell { height: 42px; border-radius: 8px; border: 1px solid #6c6c6c; background: #f9fafb; color: #6b7280; display:flex; align-items:center; justify-content:center; cursor:not-allowed; }
.book-session .cal-grid .cell.empty { border-style: dashed; background: #fff; }
.book-session .cal-grid .cell.has { cursor:pointer; background:#fff; color:#111827; }
.book-session .cal-grid .cell.today { border-color:#60a5fa; box-shadow: 0 0 0 2px rgba(59,130,246,0.25); }
.book-session .cal-grid .cell.has:hover { border-color:#c4b5fd; box-shadow: 0 0 0 3px rgba(196,181,253,0.35); }
.book-session .cal-grid .cell.active { border-color:#ef4444; background:#fff7f7; color:#991b1b; box-shadow: 0 0 0 2px rgba(239,68,68,0.25); }

.book-session .legend { margin-top: 10px; color:#6b7280; font-size: 0.9rem; display:flex; align-items:center; gap:10px; }
.book-session .legend .dot { width:10px; height:10px; border-radius:50%; display:inline-block; border: 1px solid #6c6c6c; background:#f3f4f6; }
.book-session .legend .dot.has { background:#fff; border-color:#10b981; box-shadow: inset 0 0 0 3px rgba(16,185,129,0.25); }

.book-session .slots { list-style:none; margin: 0; padding: 0; display: grid; gap: 10px; }
.book-session .slot { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; background:#f9fafb; border:1px solid #6c6c6c; border-radius:8px; }
.book-session .slot .time { font-weight:600; }
.book-session .slot .price { color:#374151; }
.book-session .btn { padding: 8px 12px; border-radius: 8px; border: none; cursor: pointer; background:#e06f55; color:#fff; }
.book-session .btn:hover { background:#cc573c; }

@media (max-width: 900px) {
  .book-session .booking-wrap { grid-template-columns: 1fr; }
}
