/* Booking picker (visual calendar) */
[data-booking-picker] .bp-wrap{display:grid; gap:12px}
[data-booking-picker] .bp-card{border:1px solid var(--stroke); border-radius:16px; background:rgba(255,255,255,.88); overflow:hidden}
[data-booking-picker] .bp-head{padding:10px 12px; border-bottom:1px solid var(--stroke); background:rgba(248,250,252,.9); display:flex; align-items:center; justify-content:space-between; gap:10px}
[data-booking-picker] .bp-head strong{text-transform:capitalize}
[data-booking-picker] .bp-msg{font-size:12px; color:rgba(15,23,42,.7); font-weight:800}
[data-booking-picker] .bp-msg.is-error{color:rgba(220,38,38,.95)}
[data-booking-picker] .bp-msg.is-ok{color:rgba(22,163,74,.95)}
[data-booking-picker] .bp-grid{display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; padding:12px}
[data-booking-picker] .bp-dow{font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:rgba(15,23,42,.65); text-align:center}
[data-booking-picker] .bp-cell{height:34px; border-radius:10px; display:grid; place-items:center; font-weight:900; font-size:12px; border:1px solid rgba(15,23,42,.08); user-select:none}
[data-booking-picker] .bp-empty{border:none; background:transparent}

[data-booking-picker] .bp-cell.is-free{background:rgba(34,197,94,.06); cursor:pointer}
[data-booking-picker] .bp-cell.is-booked,
[data-booking-picker] .bp-cell.is-pending,
[data-booking-picker] .bp-cell.is-blocked,
[data-booking-picker] .bp-cell.is-disabled{background:rgba(148,163,184,.55); color:rgba(15,23,42,.72); cursor:not-allowed}

/* allow clicking a blocked day only as "end" marker */
[data-booking-picker] .bp-cell.can-end{cursor:pointer; opacity:.92}

/* selection */
[data-booking-picker] .bp-cell.is-start,
[data-booking-picker] .bp-cell.is-end{background:rgba(255,41,0,.18); border-color:rgba(255,41,0,.35); box-shadow:0 0 0 3px rgba(255,41,0,.10)}
[data-booking-picker] .bp-cell.is-inrange{background:rgba(255,41,0,.10); border-color:rgba(255,41,0,.20)}

@media (max-width: 640px){
  [data-booking-picker] .bp-grid{gap:5px; padding:10px}
  [data-booking-picker] .bp-cell{height:30px; border-radius:9px}
}

/* Legend + periods list */
[data-booking-picker] .bp-legend{display:flex; flex-wrap:wrap; gap:10px; padding:2px 2px 0}
[data-booking-picker] .bp-legend-item{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; color:rgba(15,23,42,.75)}
[data-booking-picker] .bp-dot{width:10px; height:10px; border-radius:999px; border:1px solid rgba(15,23,42,.15); display:inline-block}
[data-booking-picker] .bp-dot.is-booked{background:rgba(148,163,184,.75)}
[data-booking-picker] .bp-dot.is-pending{background:rgba(245,158,11,.45)}
[data-booking-picker] .bp-dot.is-blocked{background:rgba(239,68,68,.40)}

[data-booking-picker] .bp-periods{border:1px solid var(--stroke); border-radius:14px; background:rgba(255,255,255,.80); padding:10px 12px}
[data-booking-picker] .bp-periods-title{font-size:12px; font-weight:900; letter-spacing:.02em; color:rgba(15,23,42,.80); margin-bottom:8px}
[data-booking-picker] .bp-periods-list{display:grid; gap:8px}
[data-booking-picker] .bp-period{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border-radius:12px; border:1px solid rgba(15,23,42,.08); background:rgba(248,250,252,.75)}
[data-booking-picker] .bp-pill{display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-weight:900; font-size:11px; border:1px solid rgba(15,23,42,.12)}
[data-booking-picker] .bp-pill.is-ok{background:rgba(34,197,94,.10)}
[data-booking-picker] .bp-pill.is-warn{background:rgba(245,158,11,.12)}
[data-booking-picker] .bp-pill.is-danger{background:rgba(239,68,68,.10)}
[data-booking-picker] .bp-dates{font-size:12px; font-weight:800; color:rgba(15,23,42,.78)}
