:root{--wprb-past:#5A5A5A;--wprb-booked:#BFECC4;--wprb-submit:#F59E0B;}
.wprb-wrap{max-width:820px;padding:16px;border:1px solid #eee;border-radius:12px}
.wprb-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wprb-grid input,.wprb-grid select{padding:10px;border:1px solid #ddd;border-radius:10px;width:100%}
.wprb-hint{margin:10px 0;font-size:14px;opacity:.85}
.wprb-price{margin:6px 0 12px;font-size:15px}
.wprb-price-sub{opacity:.7;font-size:13px}
.wprb-slots{margin-top:12px}
.wprb-slots-list{display:flex;flex-wrap:wrap;gap:8px}
.wprb-slot{padding:10px 12px;border:1px solid #ddd;border-radius:999px;cursor:pointer;background:#fff}
.wprb-slot.active{border-color:#000;font-weight:700}
.wprb-msg{margin-top:10px;font-weight:600}
.wprb-empty,.wprb-error{padding:10px;border-radius:10px;background:#f7f7f7}
@media(max-width:640px){.wprb-grid{grid-template-columns:1fr}}

.wprb-room-picker{grid-column:1/-1;}
.wprb-room-title{font-weight:700;margin:6px 0 10px;}
.wprb-room-title .req{color:#d00;}
.wprb-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.wprb-room-card{border:1px solid #e6e6e6;border-radius:14px;overflow:hidden;display:block;cursor:pointer;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);}
.wprb-room-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
.wprb-room-media{aspect-ratio:16/9;background:#f5f5f5;}
.wprb-room-media img{width:100%;height:100%;object-fit:cover;display:block;}
.wprb-room-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#888;font-size:12px;}
.wprb-room-meta{padding:10px 12px;}
.wprb-room-name{font-weight:800;margin-bottom:4px;}
.wprb-room-desc{font-size:13px;opacity:.8;min-height:34px;}
.wprb-room-foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:13px;opacity:.9}
.wprb-room-card:has(input:checked){outline:2px solid #111;outline-offset:2px;}
.wprb-price{margin:8px 0 4px;font-size:14px;}
.wprb-note{margin-top:10px;}
.wprb-note textarea{width:100%;border:1px solid #ddd;border-radius:12px;padding:10px;resize:vertical;}
.wprb-slots-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.wprb-legend{display:flex;gap:8px;font-size:12px;flex-wrap:wrap;}
.wprb-legend .lg{padding:4px 10px;border-radius:999px;border:1px solid #ddd;background:#fff;}
.wprb-legend .lg-available{background:#fff;}
.wprb-legend .lg-booked{background:var(--wprb-booked);border-color:transparent;}
.wprb-legend .lg-past{background:var(--wprb-past);border-color:transparent;color:#fff;}

.wprb-slot.wprb-past{background:var(--wprb-past);color:#fff;border-color:transparent;}
.wprb-slot.wprb-booked{background:var(--wprb-booked);color:#114b1f;border-color:transparent;}
.wprb-submit{background:var(--wprb-submit)!important;color:#fff!important;}

@media (max-width: 640px){
  .wprb-rooms{grid-template-columns:1fr;}
  .wprb-slots-list{display:block;}
  .wprb-slot{width:100%;border-radius:12px;display:flex;justify-content:space-between;align-items:center;}
  .wprb-badge{margin-left:auto;}
}


/* FullCalendar tweaks */
#wprb-calendar { margin-top: 12px; }
.wprb-booked-event { background: var(--wprb-booked) !important; border-color: var(--wprb-booked) !important; color: #114b1f !important; }
.fc .fc-timegrid-slot { height: 2.2em; }
.fc .fc-toolbar-title { font-size: 18px; }
.fc .fc-button { border-radius: 10px; }

.wprb-calendar-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.wprb-legend{ display:flex; gap:8px; flex-wrap:wrap; }
.wprb-pill{ padding:6px 10px; border-radius:999px; font-weight:600; font-size:12px; border:1px solid #ddd; }
.wprb-pill-available{ background:#fff; }
.wprb-pill-booked{ background: var(--wprb-booked); border-color: transparent; }
.wprb-pill-past{ background: var(--wprb-past); border-color: transparent; color:#fff; }

.wprb-helper{ margin-top:8px; font-size:13px; opacity:.85; }

@media (max-width: 768px){
  .fc .fc-header-toolbar{ flex-direction:column; gap:8px; }
}

/* FullCalendar booked event coloring */
.fc .wprb-booked-event,
.fc-event.wprb-booked-event,
.fc .wprb-booked-event.fc-event,
.fc .wprb-booked-event.fc-daygrid-event {
  background-color: var(--wprb-booked) !important;
  border-color: var(--wprb-booked) !important;
}
.fc .wprb-booked-event .fc-event-main,
.fc .wprb-booked-event .fc-event-title,
.fc .wprb-booked-event .fc-event-time {
  color: #114b1f !important;
}
