/* ── Rental Bookings – Frontend ─────────────────────────────────────── */
.rb-booking-form { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:24px; margin:24px 0; }
.rb-form-title { margin-top:0; color:#1a202c; }
.rb-form-subtitle { margin:4px 0 16px; font-size:.9rem; color:#4b5563; }
.rb-field { margin-bottom:16px; }
.rb-field label { display:block; font-weight:600; margin-bottom:6px; color:#4a5568; font-size:.9rem; }
.rb-field input[type=number],.rb-field select { width:100%; padding:10px 14px; border:1px solid #cbd5e0; border-radius:8px; font-size:1rem; box-sizing:border-box; }
.rb-qty-placeholder { margin-top:8px; display:flex; align-items:center; gap:12px; }
.rb-qty-label { font-weight:600; color:#111827; font-size:1rem; margin:0; white-space:nowrap; }
.rb-qty-wrapper { max-width:120px; }
.rb-qty-wrapper .qty { width:100%; padding:10px 16px; border-radius:10px; border:1px solid #cbd5e0; font-size:1.05rem; text-align:center; }

.rb-date-picker { position:absolute; opacity:0; pointer-events:none; height:0; width:0; }
.rb-help-text { display:block; margin-top:6px; font-size:.8rem; color:#6b7280; }
.rb-week-summary { margin-top:8px; padding:8px 12px; background:#eff6ff; border-radius:8px; font-size:.85rem; color:#1d4ed8; }
.rb-week-summary strong { margin-right:4px; }

.rb-calendar { margin-top:4px; background:#f9fafb; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; }
.rb-cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.rb-cal-title { font-size:1rem; font-weight:600; color:#1f2933; text-transform:capitalize; }
.rb-cal-nav { display:flex; gap:4px; }
.rb-cal-btn { border:1px solid #d1d5db; background:#ffffff; border-radius:999px; width:30px; height:30px; display:flex; align-items:center; justify-content:center; cursor:pointer; color:#4b5563; font-size:16px; padding:0; }
.rb-cal-btn:hover { border-color:#60a5fa; color:#1d4ed8; }
.rb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.rb-cal-dow { text-align:center; font-size:.9rem; text-transform:uppercase; color:#6b7280; padding:4px 0; }
.rb-cal-day { text-align:center; font-size:1rem; padding:8px 0; border-radius:8px; border:1px solid transparent; background:transparent; cursor:default; color:#111827; }
.rb-cal-day.rb-cal-empty { border:none; background:transparent; }
.rb-cal-day.rb-cal-monday { cursor:pointer; }
.rb-cal-day.rb-cal-monday:hover { background:#ecfdf5; border-color:#bbf7d0; }
.rb-cal-day.rb-cal-selected { background:#16a34a; border-color:#16a34a; color:#ffffff; }
.rb-cal-day.rb-cal-in-week { background:#bbf7d0; border-color:#22c55e; color:#14532d; }
.rb-cal-day.rb-cal-disabled { color:#d1d5db; cursor:not-allowed; }

.rb-slots-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.rb-slot { padding:8px 14px; border:2px solid #cbd5e0; border-radius:8px; background:#fff; cursor:pointer; font-size:.9rem; font-weight:500; color:#2d3748; transition:all .15s; }
.rb-slot:hover:not(.rb-slot-unavailable) { border-color:#4299e1; background:#ebf8ff; }
.rb-slot.rb-slot-selected { border-color:#3182ce; background:#3182ce; color:#fff; }
.rb-slot.rb-slot-unavailable { background:#f7fafc; color:#a0aec0; border-color:#e2e8f0; cursor:not-allowed; text-decoration:line-through; }
.rb-price-preview { margin-top:16px; padding:12px 16px; background:#f0fff4; border:1px solid #9ae6b4; border-radius:8px; color:#276749; }
.rb-price-amount { font-weight:700; font-size:1.1rem; margin-left:8px; }
.rb-resource-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:24px; margin:24px 0; }
.rb-resource-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:20px; }
.rb-resource-name { margin-top:0; }
.rb-resource-meta { display:flex; gap:12px; margin-bottom:16px; font-size:.9rem; }
.rb-book-btn { display:inline-block; background:#3182ce; color:#fff!important; padding:10px 20px; border-radius:8px; text-decoration:none; font-weight:600; font-size:.9rem; }
.rb-book-btn:hover { background:#2b6cb0; }
.rb-book-btn-disabled { background:#a0aec0; cursor:not-allowed; display:inline-block; padding:10px 20px; border-radius:8px; color:#fff; font-size:.9rem; }
.rb-resource-hero,.rb-resource-thumb { margin-bottom:16px; border-radius:12px; overflow:hidden; }
.rb-resource-hero img,.rb-resource-thumb img { width:100%; height:auto; display:block; object-fit:cover; max-height:320px; }
.rb-booking-outer { margin:24px 0; }
.rb-form-desc { margin-bottom:12px; color:#4b5563; font-size:.95rem; }
.rb-form-price-hint { margin:0 0 16px; padding:10px 14px; background:#f0fff4; border-radius:8px; color:#276749; }
.rb-cart-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:20px; }
.rb-cart-actions .quantity { margin:0; }
.rb-cart-actions .single_add_to_cart_button { margin:0; }
.rb-wc-missing-notice { margin-top:12px; padding:12px 16px; background:#fff5f5; border:1px solid #feb2b2; border-radius:8px; color:#742a2a; }
.rb-admin .rb-image-preview img { max-width:200px; height:auto; display:block; margin-bottom:8px; border-radius:8px; }
.rb-status { display:inline-block; padding:3px 10px; border-radius:20px; font-size:.8rem; font-weight:600; text-transform:uppercase; }
.rb-status-pending   { background:#fefcbf; color:#744210; }
.rb-status-confirmed { background:#c6f6d5; color:#22543d; }
.rb-status-cancelled { background:#fed7d7; color:#742a2a; }
.rb-status-completed { background:#e9d8fd; color:#44337a; }
.rb-my-bookings { margin:24px 0; }
.rb-bookings-table { width:100%; border-collapse:collapse; }
.rb-bookings-table th,.rb-bookings-table td { padding:12px 14px; text-align:left; border-bottom:1px solid #e2e8f0; }
.rb-bookings-table th { background:#f7fafc; font-weight:600; color:#4a5568; font-size:.85rem; text-transform:uppercase; }
