.rrb-wrap { border:1px solid #e5e7eb; border-radius:12px; padding:16px; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.06); }
.rrb-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.rrb-month-nav button { border:1px solid #e5e7eb; background:#fff; padding:6px 10px; border-radius:8px; cursor:pointer; }
.rrb-month-nav button:hover { background:#f3f4f6; }
.rrb-month-label { display:inline-block; min-width:160px; text-align:center; font-weight:600; }

.rrb-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:16px; }
.rrb-cal-head, .rrb-day { padding:8px; border:1px solid #eee; border-radius:10px; text-align:center; }
.rrb-cal-head { font-weight:700; background:#f8fafc; }
.rrb-day { cursor:pointer; transition:background-color .15s ease, border-color .15s ease; }
.rrb-day:hover { background:#f1f5f9; border-color:#e5e7eb; }
.rrb-day .rrb-date { display:block; font-weight:600; margin-bottom:6px; }
.rrb-day .rrb-dot { width:6px; height:6px; display:inline-block; border-radius:999px; background:#111827; margin:2px; opacity:.4; }

.rrb-form .rrb-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.rrb-form label { display:flex; flex-direction:column; gap:6px; font-weight:600; }
.rrb-form input, .rrb-form select, .rrb-form textarea { padding:10px; border:1px solid #e5e7eb; border-radius:10px; font-weight:500; }
.rrb-form input:focus, .rrb-form select:focus, .rrb-form textarea:focus { outline: none; border-color:#111827; box-shadow:0 0 0 3px rgba(17,24,39,.1); }
.rrb-form input[disabled], .rrb-form select[disabled], .rrb-form textarea[disabled] { background:#f9fafb; color:#6b7280; cursor:not-allowed; }

.rrb-submit { margin-top:12px; background:#111827; color:#fff; padding:12px 16px; border:none; border-radius:10px; cursor:pointer; }
.rrb-submit:hover { filter:brightness(1.06); }
.rrb-submit:disabled { background:#6b7280; cursor:not-allowed; }

.rrb-result { margin-top:8px; font-weight:600; }

.rrb-guests .rrb-guest { border:1px dashed #e5e7eb; border-radius:10px; padding:10px; margin:8px 0; display:flex; gap:10px; align-items:center; }
.rrb-guest .rrb-waiver-link { margin-left:auto; text-decoration:underline; cursor:pointer; }
.rrb-guest .rrb-waiver-link:focus { outline: none; box-shadow:0 0 0 3px rgba(17,24,39,.15); border-radius:6px; }

.rrb-modal { position:fixed; inset:0; background:rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; z-index:9999; }
.rrb-modal .rrb-modal-inner { background:#fff; border-radius:12px; padding:16px; width:min(600px,92vw); }
.rrb-modal h4 { margin:0 0 8px; }
.rrb-modal .sig-pad { width:100%; height:180px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; }
.rrb-modal .rrb-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:10px; }

/* Modal buttons */
.rrb-modal .rrb-actions .btn-clear,
.rrb-modal .rrb-actions .btn-cancel,
.rrb-modal .rrb-actions .btn-save {
  border-radius:10px;
  padding:10px 14px;
  font-weight:600;
  border:1px solid #e5e7eb;
  background:#fff;
  cursor:pointer;
}
.rrb-modal .rrb-actions .btn-clear { color:#374151; }
.rrb-modal .rrb-actions .btn-cancel { color:#374151; }
.rrb-modal .rrb-actions .btn-save { background:#111827; color:#fff; border-color:#111827; }
.rrb-modal .rrb-actions .btn-clear:hover,
.rrb-modal .rrb-actions .btn-cancel:hover { background:#f3f4f6; }
.rrb-modal .rrb-actions .btn-save:hover { filter:brightness(1.06); }

/* Make waiver PDF link in modal obviously clickable */
.rrb-modal a { text-decoration: underline; }

