/* REPLACE ENTIRE FILE (cleaned, deduped, solid merged blocks, no internal grid lines) */

.bbm-booking{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;position:relative}
.bbm-booking__controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px}
.bbm-booking__controls button{padding:4px 10px;font-size:13px;cursor:pointer}
.bbm-booking__week-label{font-weight:600}
.bbm-booking__legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;margin:6px 0 10px}
.legend{position:relative;padding-left:16px}
.legend::before{content:'';width:12px;height:12px;border:1px solid #ccc;position:absolute;left:0;top:2px;background:#fff;box-sizing:border-box}
.legend--available::before{background:#f0f9ff}
.legend--pending::before{background:#fff9e6}
.legend--booked::before{background:#e6f0ff}
.legend--unavailable::before{background:#f5f5f5}
.legend--selected::before{background:#A4D6C4;border-color:#7bbda7}

.bbm-booking__table-wrap{max-width:100%;overflow-x:auto;border:1px solid #ddd;background:#fff}
.bbm-booking__table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px}
.bbm-booking__table th,
.bbm-booking__table td{border:1px solid #d0d5db;position:relative;height:42px}
.bbm-booking__table th{background:#fafafa;font-weight:600;font-size:11px;line-height:1.1;padding:4px 2px}

.slot-button{width:100%;height:100%;border:0;background:transparent;font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.05;font-weight:500;color:#222;padding:0}
.slot-button .slot-start,.slot-button .slot-end{font-weight:500;letter-spacing:.2px}
.slot-button .slot-arrow{font-size:10px;line-height:1;color:#555;transform:translateY(-1px)}

td.available:hover .slot-button{background:#e5f2ff;border-radius:4px}
td.unavailable{background:#f6f6f6}
td.unavailable .slot-button{visibility:hidden}
td.pending{background:#fff3c9;border-color:#f0d375}
td.pending .slot-button{cursor:not-allowed}
td.pending .slot-pending{font-size:10px;font-weight:600;color:#8a6a02;letter-spacing:.3px}

td.booked{background:#e6f0ff;border-color:#b8cffc}
td.booked .slot-button{cursor:not-allowed}
td.booked .slot-booked{font-size:10px;font-weight:600;color:#234f9b;letter-spacing:.3px}

td.selected:not(.merged) .slot-button{background:#A4D6C4;color:#073b2a;font-weight:600;border-radius:6px}
td.selected:not(.merged) .slot-button .slot-arrow{color:#073b2a}

.bbm-booking__fab{position:sticky;bottom:0;background:rgba(255,255,255,.97);border-top:1px solid #ddd;margin-top:10px}
.bbm-booking__fab-inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 4px}
.bbm-booking__fab-summary{font-size:13px;font-weight:500}
.bbm-booking__fab-actions{display:flex;gap:8px}
.bbm-booking__fab-actions button{padding:6px 12px;font-size:13px;cursor:pointer;border-radius:4px;border:1px solid #0d6efd;background:#0d6efd;color:#fff}
.bbm-booking__clear{background:#f5f5f5!important;color:#222!important;border-color:#ccc!important}
.bbm-booking__book:disabled{opacity:.5;cursor:not-allowed}
.bbm-booking__nav[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}

/* -------- Merged multi-slot column (no internal lines) -------- */
.bbm-booking__table td.merged{
  /* Use the same green as single-slot selection */
  background:#A4D6C4;
  border-left:1px solid #7bbda7;
  border-right:1px solid #7bbda7;
  position:relative;
  color:#073b2a;
}
.bbm-booking__table td.merged:not(.merged-first){border-top-color:transparent}
.bbm-booking__table td.merged:not(.merged-last){border-bottom-color:transparent}
.bbm-booking__table td.merged-first{border-top-color:#7bbda7;border-radius:6px 6px 0 0}
.bbm-booking__table td.merged-last{border-bottom-color:#7bbda7;border-radius:0 0 6px 6px}
.bbm-booking__table td.merged .slot-button{opacity:0;cursor:pointer}
.bbm-booking__table td.merged:hover .slot-button{opacity:.15}
.bbm-booking__table td.merged-first .merged-range-overlay{
  position:absolute;left:0;top:0;width:100%;
  display:flex;align-items:center;justify-content:center;
  font-weight:600;font-size:12px;line-height:1.15;color:#073b2a;
  pointer-events:none;padding:2px 4px;
}
.bbm-booking__table td.merged-label .slot-button{
  background:transparent;
  font-weight:600;
  font-size:12px;
  line-height:1.15;
  color:#073b2a;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:0;
  text-shadow:none;
  cursor:pointer;
  opacity:1 !important;
}

/* Add (or keep) these styles near end for top-slot range label */
.bbm-booking__table td.merged-first .slot-button.merged-range-top{
  background:transparent;
  font-weight:600;
  font-size:12px;
  line-height:1.15;
  color:#073b2a;
  text-shadow:none;
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 2px;
}
.bbm-booking__table td.merged-first .slot-button.merged-range-top .merged-range-text{
  pointer-events:none;
}

/* Compact session list */
.bbm-booking__session-list{margin:6px 0 4px;font-size:12px}
.bbm-booking__session-ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.bbm-booking__session-ul li{display:grid;grid-template-columns:120px 100px 1fr;gap:8px;padding:2px 0;border-bottom:1px dotted #e2e6ea}
.bbm-booking__session-ul li:last-child{border-bottom:0}
.bbm-session-date{font-weight:600;color:#222}
.bbm-session-time{font-weight:500;color:#0d6efd}
.bbm-session-meta{color:#555}

/* Form fields */
.bbm-booking__field{
  padding:6px 8px;
  font-size:13px;
  border:1px solid #b8c2cc;
  border-radius:4px;
  min-width:190px;
}
.bbm-booking__field:focus{
  outline:2px solid #0d6efd;
  outline-offset:1px;
  border-color:#0d6efd;
}
.bbm-booking__email{width:100%}
.bbm-booking__email-error{
  font-size:11px;
  color:#c0392b;
  margin:2px 0 0 4px;
}

/* Adjust actions wrapping */
.bbm-booking__fab-actions{
  flex-wrap:wrap;
  align-items:center;
}

.bbm-order-summary{
  border:1px solid #e1e5ea;
  background:#f9fafb;
  border-radius:6px;
  padding:12px 14px;
  font-size:13px;
  line-height:1.35;
  margin:18px 0 6px;
}

@media (max-width:600px){
  .bbm-booking__table th,.bbm-booking__table td{min-width:56px}
  .slot-button{font-size:10px}
}

/* ================= Week Load / Error States ================= */
.bbm-booking__week-error{
  margin:8px 0 10px;
  padding:8px 10px;
  font-size:12px;
  background:#fff4d6;
  border:1px solid #f0c36d;
  color:#6b4d00;
  border-radius:4px;
  line-height:1.3;
}

/* Subtle loading dim + inline spinner positioned over table wrap */
.bbm-booking.is-week-loading .bbm-booking__table-wrap{position:relative;filter:grayscale(.2) brightness(.96);opacity:.6;transition:opacity .25s}
.bbm-booking.is-week-loading .bbm-booking__table-wrap::after{
  content:"";
  position:absolute;inset:0;display:block;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.0) 0 10px,rgba(255,255,255,.15) 10px 20px);
  pointer-events:none;
}
.bbm-booking.is-week-loading .bbm-booking__table-wrap::before{
  content:"";
  position:absolute;top:50%;left:50%;width:28px;height:28px;margin:-14px 0 0 -14px;
  border:3px solid #0d6efd;border-right-color:transparent;border-radius:50%;
  animation:bbm-spin .75s linear infinite;
  box-shadow:0 0 0 1px rgba(255,255,255,.4);
}
@keyframes bbm-spin{to{transform:rotate(360deg)}}

/* Prevent pointer actions on table while loading (still allow nav buttons elsewhere) */
.bbm-booking.is-week-loading .bbm-booking__table button{pointer-events:none}

/* =============== Order‑pay layout/styling tweaks =============== */
/* Make the order summary table stretch full width in many themes */
.woocommerce table.shop_table { width:100%; }
.wc-block-components-checkout-order-summary, .wc-block-components-totals-wrapper { width:100%; }
/* Coupon form styling to blend with Woo */
.bbm-coupon-form{ display:flex; gap:8px; align-items:center; margin:10px 0; }
.bbm-coupon-form .bbm-coupon-input{ min-width:280px; padding:8px 10px; font-size:14px; border:1px solid #d9d9d9; border-radius:6px; }
.bbm-coupon-form .bbm-coupon-apply{ padding:8px 12px; font-size:14px; border:1px solid #d9d9d9; border-radius:6px; background:#f5f7fa; }
