/* Valoleo Booking Suite 3.8.516
 * Shared public booking primitives used by both the availability shortcode
 * and the full booking wizard. Page-specific rules stay in their own assets.
 */

.vbs-avail{display:flex;gap:0;border-radius:14px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.08);background:#fff}.vbs-steps h4{margin:0 0 10px 0;font-weight:600}.vbs-step{display:flex;align-items:center;gap:10px;margin:10px 0;opacity:.9}.vbs-step .num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;color:#000;font-weight:600}.vbs-main{flex:1;padding:22px 26px;background:linear-gradient(180deg,#f7f9fc,rgba(247,249,252,.65))}.vbs-card{background:#fff;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.06);padding:14px 16px;margin:14px 0}.vbs-service-list .item{display:flex;align-items:center;gap:12px;border:1px solid #eef0f4;border-radius:10px;padding:14px 12px;margin:12px 0;cursor:pointer}.vbs-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 0}.vbs-btn:disabled{opacity:.5;cursor:not-allowed}.vbs-month{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.vbs-day{background:#f0f3f7;border-radius:8px;text-align:center;padding:10px 0;opacity:.6}.vbs-day.is-active{background:#e9ecf4;opacity:1;border:1px solid #d9deea}.vbs-slots{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px;max-height:340px;overflow:auto}.vbs-slot{background:#f3f5f9;border:1px solid #e3e7ef;border-radius:8px;text-align:center;padding:10px 6px}.vbs-slot.is-free{background:#f6fff7;border-color:#bfe6c4}.vbs-slot.is-busy{background:#fff2f2;border-color:#ffd3d3;opacity:.6}.vbs-legend{display:flex;gap:18px;font-size:13px;color:#777;padding:8px 0}.vbs-dot{width:12px;height:12px;border-radius:3px;display:inline-block;margin-right:6px;background:#f3f5f9;border:1px solid #e3e7ef}.vbs-dot.free{background:#e6ffe9;border-color:#bfe6c4}.vbs-dot.busy{background:#ffe6e6;border-color:#ffd3d3}