/* Royal InfraTech Bookings base styles */
:root{--ritb-green:#16A34A;--ritb-green-dark:#0f7a36;--ritb-red:#dc2626;--ritb-red-dark:#b91c1c;--ritb-yellow:#d97706;--ritb-gray:#6b7280;--ritb-bg:#ffffff;--ritb-radius:12px;--ritb-font:'Roboto',sans-serif;}
.ritb-booking-form-wrap{text-align:center;width:100%;}
.ritb-booking-form-card,.ritb-user-bookings-card{border:1px solid #e5e7eb;padding:32px;border-radius:var(--ritb-radius);background:var(--ritb-bg);margin:0 auto 32px auto;font-family:var(--ritb-font);max-width:600px;box-shadow:0 4px 16px rgba(0,0,0,.08);}
.ritb-user-bookings-card{max-width:none;padding:24px;}
.ritb-booking-form-card h3,.ritb-user-bookings-card h3{margin:0 0 16px;color:var(--ritb-green);font-size:1.5rem;font-weight:700;text-align:center;}
.ritb-field{margin-bottom:20px;text-align:left;}
.ritb-field label{display:block;margin-bottom:6px;font-weight:600;font-size:15px;color:#111;}
.ritb-field input,.ritb-field select,.ritb-field textarea{width:100%;max-width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:15px;}
.ritb-field input[type=date]{cursor:pointer;}
.ritb-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:10px;}
.ritb-slot-btn{padding:10px 8px;font-size:14px;border-radius:8px;cursor:pointer;border:2px solid transparent;line-height:1.2;white-space:nowrap;text-align:center;font-weight:600;transition:all .15s ease;}
.ritb-slot-btn.available{background:var(--ritb-green);color:#fff;}
.ritb-slot-btn.available:hover{background:var(--ritb-green-dark);}
.ritb-slot-btn.unavailable{background:var(--ritb-red);color:#fff;cursor:not-allowed;opacity:.65;text-decoration:line-through;}
.ritb-slot-btn.unavailable:hover{background:var(--ritb-red-dark);}
.ritb-slot-btn.selected{outline:2px solid var(--ritb-green-dark);box-shadow:0 0 0 2px var(--ritb-green-dark) inset;}
.ritb-btn{background:var(--ritb-green);color:#fff;padding:14px 32px;border:none;border-radius:999px;cursor:pointer;font-weight:700;font-size:16px;display:inline-block;text-align:center;}
.ritb-btn:hover{background:var(--ritb-green-dark);}
.ritb-btn-small{background:var(--ritb-green);color:#fff;padding:6px 12px;font-size:12px;border:none;border-radius:999px;text-decoration:none;display:inline-block;cursor:pointer;}
.ritb-btn-small:hover{background:var(--ritb-green-dark);color:#fff;}
.ritb-booking-response,.ritb-user-cancel-response{margin-top:10px;font-size:14px;text-align:center;}
.ritb-user-bookings-card .ritb-user-cancel-response{text-align:left;}
.ritb-user-bookings-table{width:100%;border-collapse:collapse;font-size:14px;}
.ritb-user-bookings-table th,.ritb-user-bookings-table td{border-bottom:1px solid #e5e7eb;padding:8px;text-align:left;}
.ritb-badge{padding:2px 8px;border-radius:999px;font-size:12px;color:#fff;white-space:nowrap;}
.ritb-badge-pending{background:var(--ritb-yellow);}
.ritb-badge-approved{background:var(--ritb-green);}
.ritb-badge-canceled,.ritb-badge-declined{background:var(--ritb-red);}
.ritb-badge-reschedule_requested{background:var(--ritb-yellow);}
.ritb-badge-completed{background:var(--ritb-gray);}
@media(max-width:480px){
 .ritb-booking-form-card{padding:24px;}
 .ritb-user-bookings-card{padding:16px;}
 .ritb-booking-form-card h3{font-size:1.25rem;}
 .ritb-field{margin-bottom:16px;}
 .ritb-slot-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;}
 .ritb-slot-btn{font-size:13px;padding:8px 6px;}
 .ritb-btn{width:100%;}
}
/* UI fix overrides */
.ritb-field select{line-height:1.4;min-height:44px;padding-top:8px;padding-bottom:8px;max-width:100%;}
.ritb-slot-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr)) !important;}
.ritb-slot-btn{display:flex;align-items:center;justify-content:center;line-height:1.2;min-height:40px;white-space:normal;overflow:visible;text-overflow:initial;}
@media(max-width:480px){
 .ritb-field select{min-height:40px;font-size:15px;}
 .ritb-slot-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) !important;}
 .ritb-slot-btn{min-height:36px;font-size:13px;padding:8px 6px;}
}
/* Mini Upcoming Booking snippet */
.ritb-upcoming-mini{font-size:14px;line-height:1.3;text-align:left;color:#111;margin:0;padding:0;}
.ritb-upcoming-mini-empty{font-size:14px;line-height:1.3;color:#666;text-align:left;}
.ritb-up-mini-date{font-weight:700;color:#111;}
.ritb-up-mini-type{font-size:13px;color:var(--ritb-green-dark);font-weight:600;margin-top:2px;}
.ritb-up-mini-status{font-size:12px;color:#666;margin-top:2px;}
