
/* ===== Slot Availability Calendar ===== */
.slot-cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.slot-cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; }
.slot-cal-header { text-align:center; font-size:0.7rem; font-weight:600; color:#888; padding:4px 0; }
.slot-cal-day { text-align:center; padding:8px 4px; border-radius:8px; font-size:0.85rem; min-height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center; transition:all 0.2s; }
.slot-cal-day.empty { background:transparent; }
.slot-cal-day.disabled { background:#f5f5f5; color:#ccc; }
.slot-cal-day.available { background:#e8f5e9; color:#2d6a4f; cursor:pointer; border:2px solid transparent; }
.slot-cal-day.available:hover { background:#c8e6c9; border-color:#2d6a4f; transform:scale(1.05); }
.slot-cal-day.selected { background:#2d6a4f !important; color:#fff !important; border-color:#2d6a4f; }
.slot-cal-day .day-num { font-weight:600; line-height:1; }
.slot-cal-day .day-spots { font-size:0.6rem; margin-top:2px; opacity:0.8; }
.slot-cal-day.selected .day-spots { color:#c8e6c9; }
.slot-cal-legend { display:flex; align-items:center; gap:4px; }
.legend-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; vertical-align:middle; }
.legend-dot.available { background:#2d6a4f; }
.legend-dot.unavailable { background:#ccc; }

/* ===== Slot Cards ===== */
.slot-cards { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.slot-card { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:16px; border:2px solid #e0e0e0; border-radius:12px; text-decoration:none; color:inherit; transition:all 0.2s; }
.slot-card:hover { border-color:#0077b6; box-shadow:0 4px 12px rgba(0,119,182,0.15); transform:translateY(-2px); }
.slot-card.selectable { cursor:pointer; }
.slot-card.selected { border-color:#2d6a4f; background:#e8f5e9; }
.slot-time { font-weight:600; font-size:1rem; }
.slot-label { font-size:0.9rem; color:#555; flex:1; }
.slot-meta { display:flex; gap:16px; font-size:0.85rem; }
.slot-rate { color:#0077b6; font-weight:600; }
.slot-spots { color:#2d6a4f; }
.slot-placeholder { color:#999; text-align:center; padding:20px; font-style:italic; }
.selected-slot-banner { display:flex; align-items:center; gap:12px; background:#e8f5e9; padding:12px 16px; border-radius:8px; border:2px solid #2d6a4f; margin:8px 0; }

/* ===== Admin Booking Badges ===== */
.status-badge { padding:4px 10px; border-radius:20px; font-size:0.75rem; font-weight:600; text-transform:uppercase; }
.badge-warning { background:#fff3cd; color:#856404; }
.badge-success { background:#d4edda; color:#155724; }
.badge-danger { background:#f8d7da; color:#721c24; }
.btn-success { background:#28a745; color:#fff; border:none; }
.btn-success:hover { background:#218838; }
.btn-danger { background:#dc3545; color:#fff; border:none; }
.btn-danger:hover { background:#c82333; }
