/* Rafimotion Booking v5.2.0 public UI layer */
.rafi-therapist-booking-calendar,
.rafi-client-dashboard,
.rafi-therapist-dashboard,
.rafi-therapist-list {
  --rb-bg: #ffffff;
  --rb-soft: #f7f4ef;
  --rb-line: #e5ddd2;
  --rb-text: #23211f;
  --rb-muted: #6b6259;
  --rb-primary: #2f2a24;
  --rb-confirmed: #059669;
  --rb-pending: #d97706;
  --rb-cancelled: #e11d48;
  --rb-paid: #7c3aed;
  box-sizing: border-box;
}
.rafi-therapist-booking-calendar *,
.rafi-client-dashboard *,
.rafi-therapist-dashboard *,
.rafi-therapist-list * { box-sizing: border-box; }
.rafi-therapist-booking-calendar,
.rafi-client-dashboard,
.rafi-therapist-dashboard {
  border: 1px solid var(--rb-line);
  border-radius: 22px;
  background: var(--rb-bg);
  box-shadow: 0 14px 40px rgba(35, 33, 31, .06);
}
.rafi-therapist-booking-calendar button,
.rafi-client-dashboard button,
.rafi-therapist-dashboard button,
.rafi-client-dashboard a,
.rafi-therapist-dashboard a {
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.rafi-therapist-booking-calendar button:hover,
.rafi-client-dashboard button:hover,
.rafi-therapist-dashboard button:hover,
.rafi-client-dashboard a:hover,
.rafi-therapist-dashboard a:hover {
  transform: translateY(-1px);
}
.rafi-tbc-slots button:not(:disabled) {
  box-shadow: 0 3px 14px rgba(47, 42, 36, .08);
}
.rafi-tbc-slots button:disabled {
  filter: grayscale(.35);
}
.rafi-booking-progress {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 0 0 16px;
}
.rafi-booking-progress span {
  border-radius: 999px;
  background: var(--rb-soft);
  color: var(--rb-muted);
  padding: 8px 10px;
  font-size: 12px;
  text-align: center;
}
.rafi-booking-progress span.is-active {
  background: var(--rb-primary);
  color: #fff;
}
.rafi-client-status,
.rafi-therapist-status,
.rafi-booking-status {
  border-radius: 999px;
  padding: 5px 10px;
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
}
.rafi-status-confirmed { background: rgba(5,150,105,.10); color: var(--rb-confirmed); }
.rafi-status-pending { background: rgba(217,119,6,.12); color: var(--rb-pending); }
.rafi-status-cancelled { background: rgba(225,29,72,.10); color: var(--rb-cancelled); }
.rafi-status-paid { background: rgba(124,58,237,.10); color: var(--rb-paid); }
.rafi-dashboard-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 12px 0 18px;
}
.rafi-dashboard-tab {
  border: 1px solid var(--rb-line);
  border-radius: 999px;
  background: var(--rb-soft);
  color: var(--rb-text);
  padding: 8px 12px;
  cursor: pointer;
}
.rafi-dashboard-tab.is-active { background: var(--rb-primary); color: #fff; }
.rafi-dashboard-panel[hidden] { display: none !important; }
.rafi-loading { opacity: .65; pointer-events: none; }
.rafi-success-pulse { animation: rafiSuccessPulse .7s ease; }
@keyframes rafiSuccessPulse { 0% { transform: scale(.98); } 60% { transform: scale(1.01); } 100% { transform: scale(1); } }
@media (max-width: 720px) {
  .rafi-booking-progress { grid-template-columns: 1fr; }
  .rafi-therapist-booking-calendar,
  .rafi-client-dashboard,
  .rafi-therapist-dashboard { border-radius: 18px; padding-left: 14px !important; padding-right: 14px !important; }
}

/* Rafimotion Booking v5.2.2 clarity fixes */
.rafi-tbc-admin-helper {
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid var(--rb-line);
  border-radius: 14px;
  background: var(--rb-soft);
  color: var(--rb-text);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  font-size: 13px;
}
.rafi-tbc-admin-helper code {
  background: #fff;
  border: 1px solid var(--rb-line);
  border-radius: 8px;
  padding: 4px 7px;
  font-size: 12px;
}
.rafi-tbc-admin-id {
  background: var(--rb-primary);
  color: #fff;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 700;
}
.rafi-tbc-slots {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  align-items: stretch;
}
.rafi-tbc-slot {
  min-width: 86px !important;
  min-height: 54px !important;
  padding: 8px 12px !important;
  border-radius: 14px !important;
  border: 1px solid var(--rb-line) !important;
  background: #fff !important;
  color: var(--rb-text) !important;
  opacity: 1 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  line-height: 1.1 !important;
  box-shadow: 0 4px 12px rgba(35, 33, 31, .08) !important;
}
.rafi-tbc-slot.is-available {
  border-color: rgba(5,150,105,.35) !important;
  background: rgba(5,150,105,.08) !important;
}
.rafi-tbc-slot.is-available:hover,
.rafi-tbc-slot.is-available:focus {
  background: var(--rb-primary) !important;
  border-color: var(--rb-primary) !important;
  color: #fff !important;
}
.rafi-tbc-slot.is-unavailable,
.rafi-tbc-slot:disabled {
  background: #f4f1ec !important;
  border-color: #ddd5ca !important;
  color: #8a8177 !important;
  cursor: not-allowed !important;
  opacity: .95 !important;
  box-shadow: none !important;
}
.rafi-tbc-slot-time {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: .02em;
}
.rafi-tbc-slot-state {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  opacity: .82;
}
@media (max-width: 520px) {
  .rafi-tbc-slot { min-width: calc(50% - 8px) !important; }
}

/* Rafimotion Booking v5.2.3 admin-controlled colors and labels */
.rafi-therapist-booking-calendar {
  background: var(--rb-bg) !important;
  border-color: var(--rb-line) !important;
  color: var(--rb-text) !important;
}
.rafi-tbc-title {
  margin: 0 0 14px !important;
  color: var(--rb-text) !important;
  font-size: clamp(26px, 4vw, 42px) !important;
  line-height: 1.1 !important;
  letter-spacing: .12em !important;
}
.rafi-tbc-controls {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  align-items: end !important;
  margin-bottom: 14px !important;
  color: var(--rb-muted) !important;
}
.rafi-tbc-controls input,
.rafi-tbc-form input,
.rafi-tbc-form textarea {
  width: 100% !important;
  padding: 9px 11px !important;
  border: 1px solid var(--rb-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--rb-text) !important;
}
.rafi-tbc-load,
.rafi-tbc-submit {
  padding: 11px 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text, #fff) !important;
  cursor: pointer !important;
  font-weight: 700 !important;
}
.rafi-tbc-slot.is-available {
  border-color: var(--rb-slot-available-border) !important;
  background: var(--rb-slot-available-bg) !important;
  color: var(--rb-slot-available-text) !important;
}
.rafi-tbc-slot.is-available:hover,
.rafi-tbc-slot.is-available:focus,
.rafi-tbc-slot.is-selected {
  background: var(--rb-slot-selected-bg) !important;
  border-color: var(--rb-slot-selected-bg) !important;
  color: var(--rb-slot-selected-text) !important;
}
.rafi-tbc-slot.is-unavailable,
.rafi-tbc-slot:disabled {
  background: var(--rb-slot-unavailable-bg) !important;
  border-color: var(--rb-slot-unavailable-border) !important;
  color: var(--rb-slot-unavailable-text) !important;
}

/* Rafimotion Booking v5.2.4 live admin style refresh */
.rafi-tbc-slot-time,
.rafi-tbc-slot-state {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}
.rafi-tbc-slot-time { margin-bottom: 4px !important; }
.rafi-tbc-slot.is-available .rafi-tbc-slot-state::before,
.rafi-tbc-slot.is-unavailable .rafi-tbc-slot-state::before,
.rafi-tbc-slot.is-selected .rafi-tbc-slot-state::before { content: ''; }
.rafi-tbc-load,
.rafi-tbc-submit {
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
}
.rafi-booking-progress span.is-active,
.rafi-dashboard-tab.is-active {
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
}
.rafi-booking-progress span:not(.is-active) {
  background: var(--rb-soft) !important;
  color: var(--rb-muted) !important;
}

/* Rafimotion Booking v5.2.6 mobile day selector and synchronized booking states */
.rafi-tbc-daystrip {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 4px 2px 10px !important;
  margin: -4px 0 10px !important;
  scrollbar-width: thin !important;
}
.rafi-tbc-daybtn {
  flex: 0 0 auto !important;
  min-width: 74px !important;
  border: 1px solid var(--rb-line) !important;
  background: var(--rb-soft) !important;
  color: var(--rb-text) !important;
  border-radius: 14px !important;
  padding: 9px 10px !important;
  cursor: pointer !important;
  text-align: center !important;
}
.rafi-tbc-daybtn strong,
.rafi-tbc-daybtn span {
  display: block !important;
  line-height: 1.15 !important;
}
.rafi-tbc-daybtn strong { font-size: 13px !important; }
.rafi-tbc-daybtn span { font-size: 12px !important; opacity: .78 !important; margin-top: 3px !important; }
.rafi-tbc-daybtn.is-active,
.rafi-tbc-daybtn:hover,
.rafi-tbc-daybtn:focus {
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
  border-color: var(--rb-primary) !important;
}
.rafi-tbc-slot[title*="събитие"],
.rafi-tbc-slot[aria-label*="събитие"] {
  opacity: .8 !important;
}
@media (max-width: 640px) {
  .rafi-therapist-booking-calendar { padding: 14px !important; border-radius: 14px !important; }
  .rafi-tbc-controls { display: grid !important; grid-template-columns: 1fr !important; }
  .rafi-tbc-controls label,
  .rafi-tbc-load { width: 100% !important; }
  .rafi-tbc-slots { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 8px !important; }
  .rafi-tbc-slot { width: 100% !important; min-width: 0 !important; }
}

/* Rafimotion Booking v5.3.3 unified calendar style */
.rafi-unified-calendar{
  max-width:1040px !important;
  margin:22px auto !important;
  border:1px solid var(--rb-line) !important;
  border-radius:22px !important;
  padding:18px !important;
  background:var(--rb-bg) !important;
  color:var(--rb-text) !important;
  box-shadow:0 18px 50px rgba(15,23,42,.06) !important;
  box-sizing:border-box !important;
}
.rafi-uc-head{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:14px !important;flex-wrap:wrap !important;margin-bottom:14px !important;}
.rafi-uc-head h3{margin:0 0 6px !important;font-size:clamp(26px,4vw,42px) !important;letter-spacing:.09em !important;line-height:1.15 !important;}
.rafi-uc-head p{margin:0 !important;color:var(--rb-muted) !important;line-height:1.45 !important;}
.rafi-uc-legend{display:flex !important;gap:8px !important;flex-wrap:wrap !important;}
.rafi-uc-legend span{padding:7px 11px !important;border-radius:999px !important;font-size:13px !important;font-weight:700 !important;}
.rafi-uc-legend .event{background:#eef2ff !important;color:#3730a3 !important;}
.rafi-uc-legend .therapy{background:var(--rb-slot-available-bg) !important;color:var(--rb-slot-available-text) !important;}
.rafi-uc-legend .blocked{background:var(--rb-slot-unavailable-bg) !important;color:var(--rb-slot-unavailable-text) !important;}
.rafi-uc-daystrip{display:flex !important;gap:8px !important;overflow-x:auto !important;padding:4px 0 14px !important;-webkit-overflow-scrolling:touch !important;scrollbar-width:thin !important;}
.rafi-uc-day{flex:0 0 auto !important;min-width:88px !important;text-align:center !important;text-decoration:none !important;border:1px solid var(--rb-line) !important;background:var(--rb-soft) !important;color:var(--rb-text) !important;border-radius:16px !important;padding:10px 12px !important;}
.rafi-uc-day strong,.rafi-uc-day span{display:block !important;line-height:1.15 !important;}
.rafi-uc-day span{font-size:13px !important;margin-top:4px !important;color:inherit !important;opacity:.82 !important;}
.rafi-uc-day.is-active,.rafi-uc-day:hover{background:var(--rb-primary) !important;border-color:var(--rb-primary) !important;color:var(--rb-primary-text) !important;}
.rafi-uc-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(310px,1fr)) !important;gap:16px !important;align-items:start !important;}
.rafi-uc-panel,.rafi-uc-booking-box{border:1px solid var(--rb-line) !important;border-radius:18px !important;padding:16px !important;background:#fff !important;box-sizing:border-box !important;}
.rafi-uc-panel h4,.rafi-uc-booking-form h4{margin:0 0 12px !important;font-size:clamp(21px,3vw,30px) !important;letter-spacing:.07em !important;line-height:1.2 !important;}
.rafi-uc-empty{color:var(--rb-muted) !important;margin:8px 0 !important;}
.rafi-uc-event-card,.rafi-uc-therapist-card{border:1px solid var(--rb-line) !important;border-radius:16px !important;padding:13px !important;margin:0 0 11px !important;background:#f8fafc !important;}
.rafi-uc-event-card strong,.rafi-uc-therapist-title strong{font-weight:800 !important;}
.rafi-uc-meta,.rafi-uc-event-card small{display:block !important;color:var(--rb-muted) !important;margin-top:5px !important;line-height:1.35 !important;}
.rafi-uc-therapist-title{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:10px !important;margin-bottom:9px !important;}
.rafi-uc-therapist-title span{font-size:12px !important;color:var(--rb-muted) !important;}
.rafi-uc-slots{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(96px,1fr)) !important;gap:8px !important;}
.rafi-uc-slot{border:1px solid var(--rb-slot-available-border) !important;background:var(--rb-slot-available-bg) !important;color:var(--rb-slot-available-text) !important;border-radius:14px !important;padding:10px 8px !important;font-weight:800 !important;cursor:pointer !important;text-align:center !important;transition:transform .15s ease, box-shadow .15s ease !important;}
.rafi-uc-slot span,.rafi-uc-slot small{display:block !important;}
.rafi-uc-slot small{font-size:11px !important;margin-top:3px !important;opacity:.84 !important;}
.rafi-uc-slot:hover,.rafi-uc-slot.is-selected{background:var(--rb-slot-selected-bg) !important;border-color:var(--rb-slot-selected-bg) !important;color:var(--rb-slot-selected-text) !important;transform:translateY(-1px) !important;box-shadow:0 10px 24px rgba(15,23,42,.12) !important;}
.rafi-uc-booking-box{margin-top:16px !important;}
.rafi-uc-booking-empty{color:var(--rb-muted) !important;background:#f8fafc !important;border-radius:14px !important;padding:13px !important;}
.rafi-uc-picked{padding:10px 12px !important;border-radius:12px !important;background:var(--rb-soft) !important;font-weight:800 !important;}
.rafi-uc-form-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;gap:12px !important;margin:12px 0 !important;}
.rafi-uc-form-grid label{font-weight:700 !important;color:var(--rb-text) !important;}
.rafi-uc-form-grid input,.rafi-uc-form-grid textarea{width:100% !important;box-sizing:border-box !important;margin-top:6px !important;border:1px solid var(--rb-line) !important;border-radius:12px !important;padding:10px 12px !important;background:#fff !important;color:var(--rb-text) !important;}
.rafi-uc-submit{background:var(--rb-primary) !important;color:var(--rb-primary-text) !important;border:0 !important;border-radius:12px !important;padding:11px 16px !important;font-weight:800 !important;cursor:pointer !important;}
.rafi-uc-clear{margin-left:8px !important;background:var(--rb-soft) !important;color:var(--rb-text) !important;border:1px solid var(--rb-line) !important;border-radius:12px !important;padding:10px 14px !important;cursor:pointer !important;}
.rafi-uc-message p{padding:11px 12px !important;border-radius:12px !important;margin:12px 0 0 !important;}
.rafi-uc-message p.ok{background:#ecfdf5 !important;color:#047857 !important;}
.rafi-uc-message p.err{background:#fef2f2 !important;color:#b91c1c !important;}
.rafi-uc-admin-shortcodes{margin-top:14px !important;padding:12px !important;border-radius:14px !important;background:#f1f5f9 !important;}
.rafi-unified-events-calendar .rafi-calendar-wrap,.rafi-unified-events-calendar .rafi-calendar-shell,.rafi-unified-events-calendar table{border-radius:18px !important;}
.rafi-therapy-calendar-picker{max-width:1040px !important;margin:22px auto !important;border:1px solid var(--rb-line) !important;border-radius:22px !important;background:var(--rb-bg) !important;color:var(--rb-text) !important;}
@media(max-width:640px){
  .rafi-unified-calendar{padding:14px !important;border-radius:18px !important;}
  .rafi-uc-grid{grid-template-columns:1fr !important;}
  .rafi-uc-day{min-width:76px !important;padding:9px 10px !important;}
  .rafi-uc-slots{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .rafi-uc-clear{margin-left:0 !important;margin-top:8px !important;width:100% !important;}
  .rafi-uc-submit{width:100% !important;}
}

/* Rafimotion Booking v5.3.4 mobile-first UI hardening */
.rafi-therapist-booking-calendar,
.rafi-unified-calendar,
.rafi-therapy-calendar-picker,
.rafi-unified-events-calendar,
.rafi-client-dashboard,
.rafi-therapist-dashboard,
.rafi-therapist-list {
  width: 100% !important;
  max-width: min(1040px, calc(100vw - 24px)) !important;
  overflow: hidden !important;
}
.rafi-therapist-booking-calendar button,
.rafi-unified-calendar button,
.rafi-client-dashboard button,
.rafi-therapist-dashboard button,
.rafi-therapist-list button,
.rafi-therapist-booking-calendar a,
.rafi-unified-calendar a,
.rafi-client-dashboard a,
.rafi-therapist-dashboard a {
  min-height: 44px !important;
  touch-action: manipulation !important;
}
.rafi-therapist-booking-calendar input,
.rafi-therapist-booking-calendar textarea,
.rafi-therapist-booking-calendar select,
.rafi-unified-calendar input,
.rafi-unified-calendar textarea,
.rafi-unified-calendar select,
.rafi-client-dashboard input,
.rafi-client-dashboard textarea,
.rafi-client-dashboard select,
.rafi-therapist-dashboard input,
.rafi-therapist-dashboard textarea,
.rafi-therapist-dashboard select {
  font-size: 16px !important;
  min-height: 44px !important;
}
.rafi-tbc-controls,
.rafi-uc-head,
.rafi-uc-legend,
.rafi-dashboard-tabs {
  max-width: 100% !important;
}
.rafi-tbc-daystrip,
.rafi-uc-daystrip {
  scroll-snap-type: x proximity !important;
  padding-bottom: 12px !important;
  margin-left: -2px !important;
  margin-right: -2px !important;
}
.rafi-tbc-daybtn,
.rafi-uc-day {
  scroll-snap-align: start !important;
}
.rafi-tbc-slots,
.rafi-uc-slots {
  width: 100% !important;
}
.rafi-uc-slot,
.rafi-tbc-slot {
  position: relative !important;
  user-select: none !important;
}
.rafi-uc-booking-box,
.rafi-uc-panel,
.rafi-client-dashboard,
.rafi-therapist-dashboard {
  overflow-wrap: anywhere !important;
}
.rafi-uc-form-grid,
.rafi-tbc-form {
  width: 100% !important;
}
.rafi-uc-submit,
.rafi-uc-clear,
.rafi-tbc-submit,
.rafi-tbc-load {
  text-align: center !important;
}
.rafi-client-dashboard table,
.rafi-therapist-dashboard table,
.rafi-unified-calendar table,
.rafi-unified-events-calendar table {
  width: 100% !important;
  border-collapse: collapse !important;
}
.rafi-client-dashboard .widefat,
.rafi-therapist-dashboard .widefat,
.rafi-unified-calendar .widefat,
.rafi-unified-events-calendar .widefat {
  display: block !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
@media (max-width: 780px) {
  .rafi-therapist-booking-calendar,
  .rafi-unified-calendar,
  .rafi-therapy-calendar-picker,
  .rafi-unified-events-calendar,
  .rafi-client-dashboard,
  .rafi-therapist-dashboard,
  .rafi-therapist-list {
    max-width: calc(100vw - 18px) !important;
    margin: 12px auto !important;
    border-radius: 16px !important;
    padding: 12px !important;
    box-shadow: 0 10px 28px rgba(15,23,42,.07) !important;
  }
  .rafi-tbc-title,
  .rafi-uc-head h3,
  .rafi-uc-panel h4,
  .rafi-uc-booking-form h4 {
    letter-spacing: .04em !important;
    word-break: break-word !important;
  }
  .rafi-tbc-controls,
  .rafi-uc-head,
  .rafi-dashboard-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .rafi-uc-legend {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 7px !important;
  }
  .rafi-uc-legend span {
    text-align: center !important;
    padding: 8px 6px !important;
    font-size: 12px !important;
  }
  .rafi-tbc-daybtn,
  .rafi-uc-day {
    min-width: 72px !important;
    padding: 9px 8px !important;
  }
  .rafi-tbc-slots,
  .rafi-uc-slots {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 8px !important;
  }
  .rafi-tbc-slot,
  .rafi-uc-slot {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 10px 6px !important;
  }
  .rafi-uc-grid,
  .rafi-uc-form-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .rafi-uc-booking-box {
    position: sticky !important;
    bottom: 8px !important;
    z-index: 20 !important;
    max-height: calc(100vh - 24px) !important;
    overflow-y: auto !important;
    border: 1px solid var(--rb-line) !important;
    box-shadow: 0 12px 32px rgba(15,23,42,.16) !important;
  }
  .rafi-uc-submit,
  .rafi-uc-clear,
  .rafi-tbc-submit,
  .rafi-tbc-load,
  .rafi-dashboard-tab {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .rafi-client-dashboard table,
  .rafi-client-dashboard thead,
  .rafi-client-dashboard tbody,
  .rafi-client-dashboard th,
  .rafi-client-dashboard td,
  .rafi-client-dashboard tr,
  .rafi-therapist-dashboard table,
  .rafi-therapist-dashboard thead,
  .rafi-therapist-dashboard tbody,
  .rafi-therapist-dashboard th,
  .rafi-therapist-dashboard td,
  .rafi-therapist-dashboard tr {
    display: block !important;
  }
  .rafi-client-dashboard thead,
  .rafi-therapist-dashboard thead {
    display: none !important;
  }
  .rafi-client-dashboard tr,
  .rafi-therapist-dashboard tr {
    border: 1px solid var(--rb-line) !important;
    border-radius: 14px !important;
    padding: 10px !important;
    margin: 0 0 10px !important;
    background: #fff !important;
  }
  .rafi-client-dashboard td,
  .rafi-therapist-dashboard td {
    border: 0 !important;
    padding: 7px 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }
  .rafi-client-dashboard td::before,
  .rafi-therapist-dashboard td::before {
    content: attr(data-label) !important;
    font-weight: 800 !important;
    color: var(--rb-muted) !important;
    flex: 0 0 38% !important;
  }
}
@media (max-width: 420px) {
  .rafi-tbc-slots,
  .rafi-uc-slots,
  .rafi-uc-legend {
    grid-template-columns: 1fr !important;
  }
  .rafi-uc-daystrip,
  .rafi-tbc-daystrip {
    gap: 6px !important;
  }
}

/* Rafimotion Booking v6.0.2 global button color and readability fix */
:root {
  --rb-primary: #2f2a24;
  --rb-primary-text: #ffffff;
  --rb-secondary-button-bg: #f4f1ec;
  --rb-secondary-button-text: #2f2a24;
  --rb-line: #e5ddd2;
  --rb-soft: #f7f4ef;
  --rb-bg: #ffffff;
  --rb-text: #23211f;
  --rb-muted: #6b6259;
  --rb-slot-available-bg: #e8f5e9;
  --rb-slot-available-text: #14532d;
  --rb-slot-available-border: #9ad29f;
  --rb-slot-selected-bg: #0d6efd;
  --rb-slot-selected-text: #ffffff;
}
.rafi-therapist-booking-calendar,
.rafi-unified-calendar,
.rafi-therapy-calendar-picker,
.rafi-unified-events-calendar,
.rafi-client-dashboard,
.rafi-therapist-dashboard,
.rafi-therapist-list,
.rafi-client-portal,
.rafi-intake-form,
.rafi-card {
  color: var(--rb-text) !important;
}
.rafi-therapist-booking-calendar button:not(:disabled),
.rafi-unified-calendar button:not(:disabled),
.rafi-therapy-calendar-picker button:not(:disabled),
.rafi-unified-events-calendar button:not(:disabled),
.rafi-client-dashboard button:not(:disabled),
.rafi-therapist-dashboard button:not(:disabled),
.rafi-client-portal button:not(:disabled),
.rafi-intake-form button:not(:disabled),
.rafi-client-portal input[type="submit"],
.rafi-intake-form input[type="submit"],
.rafi-therapist-booking-calendar input[type="submit"],
.rafi-unified-calendar input[type="submit"],
.rafi-client-dashboard input[type="submit"],
.rafi-therapist-dashboard input[type="submit"],
.rafi-tbc-load,
.rafi-tbc-submit,
.rafi-uc-submit,
.rafi-modal button[type="submit"] {
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
  border-color: var(--rb-primary) !important;
  text-shadow: none !important;
  box-shadow: 0 8px 20px rgba(15,23,42,.10) !important;
  font-weight: 800 !important;
}
.rafi-therapist-booking-calendar button:not(:disabled) *,
.rafi-unified-calendar button:not(:disabled) *,
.rafi-therapy-calendar-picker button:not(:disabled) *,
.rafi-unified-events-calendar button:not(:disabled) *,
.rafi-client-dashboard button:not(:disabled) *,
.rafi-therapist-dashboard button:not(:disabled) *,
.rafi-client-portal button:not(:disabled) *,
.rafi-intake-form button:not(:disabled) * {
  color: inherit !important;
}
.rafi-uc-clear,
.rafi-dashboard-tab:not(.is-active),
.rafi-client-portal .button-secondary,
.rafi-therapist-dashboard .button-secondary,
.rafi-client-dashboard .button-secondary,
.rafi-intake-form .button-secondary {
  background: var(--rb-secondary-button-bg) !important;
  color: var(--rb-secondary-button-text) !important;
  border: 1px solid var(--rb-line) !important;
  box-shadow: none !important;
}
.rafi-tbc-daybtn.is-active,
.rafi-uc-day.is-active,
.rafi-uc-day:hover,
.rafi-dashboard-tab.is-active,
.rafi-booking-progress span.is-active {
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
  border-color: var(--rb-primary) !important;
}
.rafi-tbc-slot.is-available,
.rafi-uc-slot {
  background: var(--rb-slot-available-bg) !important;
  color: var(--rb-slot-available-text) !important;
  border-color: var(--rb-slot-available-border) !important;
}
.rafi-tbc-slot.is-available:hover,
.rafi-tbc-slot.is-available:focus,
.rafi-tbc-slot.is-selected,
.rafi-uc-slot:hover,
.rafi-uc-slot:focus,
.rafi-uc-slot.is-selected {
  background: var(--rb-slot-selected-bg) !important;
  color: var(--rb-slot-selected-text) !important;
  border-color: var(--rb-slot-selected-bg) !important;
}
a.rafi-button,
.rafi-client-portal a.button,
.rafi-client-dashboard a.button,
.rafi-therapist-dashboard a.button,
.rafi-unified-calendar a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 10px 14px !important;
  border-radius: 12px !important;
  background: var(--rb-primary) !important;
  color: var(--rb-primary-text) !important;
  border: 1px solid var(--rb-primary) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}


/* Rafimotion Booking v6.0.3 readable unified calendar redesign */
.rafi-unified-calendar.rafi-combined-calendar {
  --rb-readable-primary: #2f5d50;
  --rb-readable-primary-text: #ffffff;
  --rb-readable-accent: #8cbf9f;
  --rb-readable-bg: #fafaf8;
  --rb-readable-card: #ffffff;
  --rb-readable-text: #24323d;
  --rb-readable-muted: #5d6872;
  --rb-readable-line: #dfe6df;
  --rb-readable-soft: #f3f7f3;
  --rb-readable-event-bg: #eef1ff;
  --rb-readable-event-text: #3340a0;
  --rb-readable-therapy-bg: #e8f7ee;
  --rb-readable-therapy-text: #1f6b45;
  --rb-readable-blocked-bg: #fde8e8;
  --rb-readable-blocked-text: #9f3434;
  max-width: 1080px !important;
  background: var(--rb-readable-bg) !important;
  color: var(--rb-readable-text) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 28px !important;
  padding: 28px !important;
  box-shadow: 0 22px 70px rgba(36,50,61,.09) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head {
  align-items: flex-start !important;
  padding-bottom: 18px !important;
  margin-bottom: 18px !important;
  border-bottom: 1px solid var(--rb-readable-line) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3 {
  margin: 0 0 8px !important;
  color: var(--rb-readable-text) !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  line-height: 1.08 !important;
  letter-spacing: .055em !important;
  font-weight: 800 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head p {
  max-width: 690px !important;
  color: var(--rb-readable-muted) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend {
  gap: 10px !important;
  align-items: center !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend span {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  border: 1px solid transparent !important;
  cursor: default !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend span:before {
  content: '' !important;
  width: 9px !important;
  height: 9px !important;
  border-radius: 999px !important;
  display: inline-block !important;
  background: currentColor !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend .event {background: var(--rb-readable-event-bg) !important;color: var(--rb-readable-event-text) !important;border-color:#d9defd !important;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend .therapy {background: var(--rb-readable-therapy-bg) !important;color: var(--rb-readable-therapy-text) !important;border-color:#cdebd9 !important;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend .blocked {background: var(--rb-readable-blocked-bg) !important;color: var(--rb-readable-blocked-text) !important;border-color:#facaca !important;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip {
  gap: 10px !important;
  padding: 2px 0 18px !important;
  margin-bottom: 4px !important;
  border-bottom: 0 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day {
  min-width: 94px !important;
  border: 1px solid var(--rb-readable-line) !important;
  background: #fff !important;
  color: var(--rb-readable-text) !important;
  border-radius: 18px !important;
  padding: 13px 14px !important;
  box-shadow: 0 6px 18px rgba(36,50,61,.04) !important;
  transition: transform .14s ease, border-color .14s ease, background .14s ease !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day strong {
  color: var(--rb-readable-text) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day span {
  color: var(--rb-readable-muted) !important;
  opacity: 1 !important;
  font-size: 13px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day:hover {
  transform: translateY(-1px) !important;
  border-color: var(--rb-readable-accent) !important;
  background: var(--rb-readable-soft) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day.is-active,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day.is-active:hover {
  background: var(--rb-readable-primary) !important;
  border-color: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  box-shadow: 0 10px 28px rgba(47,93,80,.22) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day.is-active strong,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day.is-active span {color: var(--rb-readable-primary-text) !important;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-grid {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  gap: 18px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box {
  background: var(--rb-readable-card) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 22px !important;
  padding: 20px !important;
  box-shadow: 0 10px 30px rgba(36,50,61,.045) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel h4,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form h4 {
  color: var(--rb-readable-text) !important;
  margin-bottom: 14px !important;
  font-size: clamp(22px, 3vw, 31px) !important;
  letter-spacing: .045em !important;
  font-weight: 800 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-empty {
  background: var(--rb-readable-soft) !important;
  color: var(--rb-readable-muted) !important;
  border: 1px dashed var(--rb-readable-line) !important;
  border-radius: 16px !important;
  padding: 16px !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-card {
  background: #fff !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 18px !important;
  padding: 16px !important;
  box-shadow: 0 6px 20px rgba(36,50,61,.035) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card strong,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-title strong {
  color: var(--rb-readable-text) !important;
  font-size: 16px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-meta,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card small,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-title span {
  color: var(--rb-readable-muted) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slots {
  grid-template-columns: repeat(auto-fit, minmax(106px, 1fr)) !important;
  gap: 10px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot {
  background: var(--rb-readable-therapy-bg) !important;
  color: var(--rb-readable-therapy-text) !important;
  border: 1px solid #bfe6cf !important;
  border-radius: 16px !important;
  min-height: 58px !important;
  padding: 12px 10px !important;
  box-shadow: none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot span {
  color: var(--rb-readable-therapy-text) !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot small {
  color: var(--rb-readable-therapy-text) !important;
  opacity: .88 !important;
  font-weight: 700 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot:hover,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot.is-selected {
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  border-color: var(--rb-readable-primary) !important;
  box-shadow: 0 12px 28px rgba(47,93,80,.22) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot:hover span,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot:hover small,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot.is-selected span,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot.is-selected small {color: var(--rb-readable-primary-text) !important;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box {
  margin-top: 18px !important;
  border-color: #cfe1d5 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-empty {
  background: #fff !important;
  border: 1px dashed var(--rb-readable-line) !important;
  color: var(--rb-readable-muted) !important;
  padding: 16px !important;
  border-radius: 16px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-picked {
  background: var(--rb-readable-therapy-bg) !important;
  color: var(--rb-readable-therapy-text) !important;
  border: 1px solid #bfe6cf !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid input,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid textarea {
  border-color: var(--rb-readable-line) !important;
  color: var(--rb-readable-text) !important;
  background: #fff !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-submit {
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  border: 1px solid var(--rb-readable-primary) !important;
  border-radius: 14px !important;
  min-height: 48px !important;
  box-shadow: 0 12px 26px rgba(47,93,80,.18) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-clear {
  background: #fff !important;
  color: var(--rb-readable-text) !important;
  border: 1px solid var(--rb-readable-line) !important;
}
@media(max-width: 780px) {
  .rafi-unified-calendar.rafi-combined-calendar {
    padding: 18px !important;
    border-radius: 22px !important;
    margin: 16px 10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head {
    display: block !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend {
    margin-top: 14px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-grid {
    grid-template-columns: 1fr !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day {
    min-width: 82px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slots {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}
@media(max-width: 420px) {
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slots {
    grid-template-columns: 1fr !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day {
    min-width: 78px !important;
  }
}

/* Rafimotion Booking v6.1.0 Platform Core */
.rafi-v610 .rafi-v610-grid,
.rafi-v61-client-portal .rafi-v610-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
  margin:18px 0;
}
.rafi-v610-card,
.rafi-service-card,
.rafi-v61-client-portal .rafi-v610-card{
  background:#fff;
  border:1px solid var(--rb-line,#e4e7ec);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 30px rgba(16,24,40,.06);
}
.rafi-v610-card h2,
.rafi-v610-card h3,
.rafi-service-card h3{margin-top:0;color:var(--rb-text,#24323d)}
.rafi-v610-form{max-width:980px;margin:18px 0}
.rafi-v610-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px}
.rafi-v610-fields p{margin:0 0 12px}
.rafi-v610 input.regular-text,
.rafi-v610 select,
.rafi-v610 textarea{max-width:100%;width:100%;border-radius:10px;border:1px solid #d0d5dd;padding:8px 10px;background:#fff;color:#24323d}
.rafi-services-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:22px 0}
.rafi-service-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rafi-service-meta span{display:inline-flex;align-items:center;border-radius:999px;background:#f2f7f4;border:1px solid #d9eadf;color:#2f5d50;padding:6px 10px;font-weight:700;font-size:13px}
@media(max-width:720px){
  .rafi-v610 .widefat{display:block;overflow-x:auto;white-space:nowrap}
  .rafi-v610-card,.rafi-service-card{padding:14px;border-radius:14px}
  .rafi-v610-fields{grid-template-columns:1fr}
}


/* Rafimotion Booking v6.1.1 mobile booking redesign */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-legend{
  display:none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head{
  display:block !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3,
.rafi-therapist-booking-calendar .rafi-tbc-title{
  letter-spacing:.02em !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip,
.rafi-therapist-booking-calendar .rafi-tbc-daystrip{
  scrollbar-width:none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip::-webkit-scrollbar,
.rafi-therapist-booking-calendar .rafi-tbc-daystrip::-webkit-scrollbar{
  display:none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot,
.rafi-therapist-booking-calendar .rafi-tbc-slot{
  cursor:pointer !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot:after,
.rafi-therapist-booking-calendar .rafi-tbc-slot.is-available:after{
  content:'›' !important;
  margin-left:auto !important;
  font-size:24px !important;
  line-height:1 !important;
  color:currentColor !important;
  opacity:.75 !important;
}
.rafi-therapist-booking-calendar{
  width:100% !important;
  box-sizing:border-box !important;
  box-shadow:0 18px 55px rgba(36,50,61,.08) !important;
}
.rafi-therapist-booking-calendar .rafi-booking-progress{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
}
.rafi-therapist-booking-calendar .rafi-booking-progress span{
  min-height:42px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  border-radius:999px !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-controls{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:10px !important;
  align-items:end !important;
  margin-top:14px !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-controls label{
  margin:0 !important;
  width:100% !important;
  color:var(--rb-muted,#5d6872) !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-date,
.rafi-therapist-booking-calendar input,
.rafi-therapist-booking-calendar textarea{
  width:100% !important;
  box-sizing:border-box !important;
  border:1px solid var(--rb-line,#dfe6df) !important;
  border-radius:14px !important;
  min-height:48px !important;
  padding:10px 14px !important;
  font-size:16px !important;
  color:var(--rb-text,#24323d) !important;
  background:#fff !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-load{
  min-height:48px !important;
  border-radius:14px !important;
  padding:10px 18px !important;
  font-weight:800 !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-daystrip{
  display:flex !important;
  gap:8px !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding:12px 0 !important;
  margin:0 !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-daybtn{
  flex:0 0 86px !important;
  min-width:86px !important;
  min-height:64px !important;
  border-radius:16px !important;
  border:1px solid var(--rb-line,#dfe6df) !important;
  background:#fff !important;
  color:var(--rb-text,#24323d) !important;
  box-shadow:0 4px 14px rgba(36,50,61,.035) !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-daybtn strong,
.rafi-therapist-booking-calendar .rafi-tbc-daybtn span{
  display:block !important;
  color:inherit !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-daybtn.is-active{
  background:var(--rb-primary,#2f5d50) !important;
  color:var(--rb-primary-text,#fff) !important;
  border-color:var(--rb-primary,#2f5d50) !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slots{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;
  gap:10px !important;
  margin:14px 0 !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slot{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  min-height:64px !important;
  border-radius:16px !important;
  padding:12px 16px !important;
  text-align:left !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slot-time{
  font-size:19px !important;
  font-weight:900 !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slot-state{
  font-size:13px !important;
  font-weight:800 !important;
  opacity:.9 !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slot.is-unavailable{
  opacity:.55 !important;
  cursor:not-allowed !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-form{
  border:1px solid var(--rb-line,#dfe6df) !important;
  border-radius:18px !important;
  padding:16px !important;
  background:#fff !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-form p{
  margin:0 0 12px !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-submit{
  width:100% !important;
  min-height:50px !important;
  border-radius:14px !important;
  font-weight:900 !important;
}
@media(max-width: 780px){
  .rafi-unified-calendar.rafi-combined-calendar{
    width:auto !important;
    max-width:none !important;
    margin:14px 12px !important;
    padding:18px !important;
    border-radius:24px !important;
    box-shadow:0 18px 48px rgba(36,50,61,.08) !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3{
    font-size:34px !important;
    line-height:1.12 !important;
    letter-spacing:.025em !important;
    margin-bottom:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head p{
    font-size:16px !important;
    line-height:1.45 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    overflow:visible !important;
    gap:8px !important;
    padding:10px 0 18px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day{
    min-width:0 !important;
    width:100% !important;
    min-height:64px !important;
    padding:10px 8px !important;
    text-align:center !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-grid{
    display:block !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box{
    padding:18px !important;
    margin:0 0 14px !important;
    border-radius:22px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel h4,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form h4{
    font-size:28px !important;
    line-height:1.12 !important;
    letter-spacing:.025em !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-empty{
    padding:16px !important;
    text-align:center !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-card,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card{
    padding:16px !important;
    border-radius:20px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slots{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot{
    display:flex !important;
    align-items:center !important;
    min-height:72px !important;
    text-align:left !important;
    padding:14px 16px !important;
    border-radius:18px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot span{
    font-size:22px !important;
    min-width:74px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot small{
    font-size:14px !important;
    text-transform:none !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid{
    grid-template-columns:1fr !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-submit,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-clear{
    width:100% !important;
    min-height:50px !important;
    margin:8px 0 0 !important;
  }
  .rafi-therapist-booking-calendar{
    width:auto !important;
    max-width:none !important;
    margin:14px 12px !important;
    padding:18px !important;
    border-radius:24px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-title{
    font-size:34px !important;
    line-height:1.12 !important;
    margin:0 0 18px !important;
  }
  .rafi-therapist-booking-calendar .rafi-booking-progress{
    grid-template-columns:1fr !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-controls{
    grid-template-columns:1fr !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-load{
    width:100% !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-daystrip{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    overflow:visible !important;
    gap:8px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-daybtn{
    min-width:0 !important;
    width:100% !important;
    flex:auto !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-slots{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:420px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip,
  .rafi-therapist-booking-calendar .rafi-tbc-daystrip{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3,
  .rafi-therapist-booking-calendar .rafi-tbc-title{
    font-size:31px !important;
  }
}

/* Rafimotion Booking v6.1.2 compact mobile calendar readability */
@media (max-width: 780px){
  .rafi-unified-calendar.rafi-combined-calendar{
    margin:12px 10px !important;
    padding:14px !important;
    border-radius:20px !important;
    box-shadow:0 10px 28px rgba(36,50,61,.07) !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head{
    padding-bottom:10px !important;
    margin-bottom:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3{
    font-size:28px !important;
    line-height:1.08 !important;
    letter-spacing:.012em !important;
    margin-bottom:6px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head p{
    font-size:15px !important;
    line-height:1.35 !important;
    margin:0 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip{
    display:flex !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    gap:8px !important;
    padding:8px 2px 12px !important;
    margin:0 -2px 6px !important;
    scroll-snap-type:x proximity !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day{
    flex:0 0 74px !important;
    width:74px !important;
    min-width:74px !important;
    min-height:62px !important;
    padding:8px 6px !important;
    border-radius:14px !important;
    text-align:center !important;
    scroll-snap-align:start !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day strong{
    font-size:14px !important;
    line-height:1.1 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day span{
    font-size:13px !important;
    line-height:1.15 !important;
    margin-top:3px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-grid{
    display:block !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box{
    padding:14px !important;
    border-radius:18px !important;
    margin:0 0 12px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel h4,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form h4{
    font-size:24px !important;
    line-height:1.08 !important;
    letter-spacing:.01em !important;
    margin-bottom:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-events:has(.rafi-uc-empty){
    display:none !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-empty{
    padding:12px !important;
    font-size:14px !important;
    line-height:1.35 !important;
    text-align:center !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-card,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card{
    padding:12px !important;
    border-radius:16px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapist-title strong{
    font-size:17px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slots{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
    margin-top:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot{
    min-height:56px !important;
    padding:10px 14px !important;
    border-radius:15px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot span{
    font-size:20px !important;
    min-width:68px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-slot small{
    font-size:13px !important;
  }
  .rafi-therapist-booking-calendar{
    margin:12px 10px !important;
    padding:14px !important;
    border-radius:20px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-title{
    font-size:28px !important;
    line-height:1.1 !important;
    margin-bottom:12px !important;
  }
  .rafi-therapist-booking-calendar .rafi-booking-progress{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:6px !important;
  }
  .rafi-therapist-booking-calendar .rafi-booking-progress span{
    min-height:36px !important;
    padding:7px 6px !important;
    font-size:12px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-controls{
    grid-template-columns:1fr !important;
    gap:8px !important;
    margin-top:12px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-load{
    width:100% !important;
    min-height:48px !important;
    font-size:16px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-daystrip{
    display:flex !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    gap:8px !important;
    padding:10px 0 !important;
    scroll-snap-type:x proximity !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-daybtn{
    flex:0 0 74px !important;
    width:74px !important;
    min-width:74px !important;
    min-height:62px !important;
    padding:8px 6px !important;
    border-radius:14px !important;
    scroll-snap-align:start !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-slots{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-slot{
    min-height:56px !important;
    padding:10px 14px !important;
    border-radius:15px !important;
  }
  .rafi-therapist-booking-calendar .rafi-tbc-slot-time{
    font-size:20px !important;
  }
}
@media (max-width:420px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip,
  .rafi-therapist-booking-calendar .rafi-tbc-daystrip{
    display:flex !important;
    grid-template-columns:none !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-head h3,
  .rafi-therapist-booking-calendar .rafi-tbc-title{
    font-size:26px !important;
  }
}

/* v6.1.3 Event booking inside combined calendar */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border:1px solid #dbe7df;
  border-radius:18px;
  background:#fff;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card + .rafi-uc-event-card{margin-top:12px;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-main{min-width:0;flex:1;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking{flex:0 0 auto;min-width:160px;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking summary{
  list-style:none;
  cursor:pointer;
  text-align:center;
  padding:12px 18px;
  border-radius:14px;
  background:var(--rafi-primary,#2f6b55);
  color:var(--rafi-primary-text,#fff);
  font-weight:800;
  box-shadow:0 8px 18px rgba(47,107,85,.18);
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking summary::-webkit-details-marker{display:none;}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-form{
  margin-top:12px;
  padding:14px;
  border-radius:18px;
  border:1px solid #dbe7df;
  background:#fbfdfb;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-full{
  padding:10px 12px;
  border-radius:14px;
  background:#fee2e2;
  color:#991b1b;
  font-weight:800;
  white-space:nowrap;
}
@media (max-width:700px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card{
    display:block;
    padding:14px;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking{margin-top:12px;min-width:0;width:100%;}
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking summary{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
}


/* Rafimotion Booking v6.1.5 mobile full-screen calendar surface */
@media (max-width: 780px) {
  .rafi-therapist-booking-calendar,
  .rafi-unified-calendar,
  .rafi-unified-calendar.rafi-combined-calendar,
  .rafi-therapy-calendar-picker,
  .rafi-unified-events-calendar {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 10px !important;
    background: #ffffff !important;
  }
  .entry-content .rafi-therapist-booking-calendar,
  .entry-content .rafi-unified-calendar,
  .entry-content .rafi-unified-calendar.rafi-combined-calendar,
  .entry-content .rafi-therapy-calendar-picker,
  .entry-content .rafi-unified-events-calendar {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-panel,
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box,
  .rafi-therapist-booking-calendar .rafi-tbc-card,
  .rafi-therapist-booking-calendar .rafi-booking-form,
  .rafi-therapy-calendar-picker .rafi-tbc-card,
  .rafi-unified-events-calendar .rafi-event-card {
    border-radius: 14px !important;
    box-shadow: none !important;
  }
}

/* Rafimotion Booking v6.1.6 GDPR checkbox and mobile event button fix */
.rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
.rafi-therapist-booking-calendar .rafi-consent-field{
  display:block !important;
  width:100% !important;
  grid-column:1 / -1 !important;
  margin:16px 0 14px !important;
  padding:14px !important;
  border:1px solid var(--rb-line,#dfe6df) !important;
  border-radius:14px !important;
  background:#f8fbf8 !important;
}
.rafi-therapist-booking-calendar .rafi-consent-label,
.rafi-booking-form .rafi-consent-label,
.rafi-consent-field label{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  cursor:pointer !important;
  width:100% !important;
  margin:0 !important;
  line-height:1.45 !important;
  color:var(--rb-text,#24323d) !important;
  font-weight:700 !important;
}
.rafi-therapist-booking-calendar input.rafi-tbc-consent,
.rafi-therapist-booking-calendar input.rafi-consent-checkbox,
.rafi-booking-form input.rafi-consent-checkbox,
.rafi-consent-field input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  display:inline-block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:static !important;
  float:none !important;
  width:22px !important;
  min-width:22px !important;
  max-width:22px !important;
  height:22px !important;
  min-height:22px !important;
  max-height:22px !important;
  margin:2px 0 0 0 !important;
  padding:0 !important;
  border:1px solid #9fb7aa !important;
  border-radius:4px !important;
  background:#fff !important;
  flex:0 0 22px !important;
}
.rafi-therapist-booking-calendar .rafi-consent-label span,
.rafi-consent-field label span{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking{
  width:auto !important;
  max-width:100% !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking summary{
  box-sizing:border-box !important;
  max-width:100% !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}
@media (max-width:700px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-card{
    overflow:hidden !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:14px 0 0 !important;
    padding:0 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-booking summary{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:16px 18px !important;
    border-radius:16px !important;
    min-height:56px !important;
    font-size:18px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-event-form{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    padding:12px !important;
    overflow:hidden !important;
  }
  .rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
  .rafi-therapist-booking-calendar .rafi-consent-field{
    padding:12px !important;
    margin:14px 0 !important;
  }
  .rafi-therapist-booking-calendar .rafi-consent-label,
  .rafi-consent-field label{
    font-size:14px !important;
    line-height:1.45 !important;
  }
}


/* Rafimotion Booking v6.1.7 mobile consent visibility hard fix */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form .rafi-consent-field,
.rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field,
.rafi-uc-booking-form .rafi-consent-field,
.rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
.rafi-therapist-booking-calendar .rafi-consent-field{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  width:100% !important;
  max-width:100% !important;
  grid-column:1 / -1 !important;
  box-sizing:border-box !important;
  clear:both !important;
  margin:16px 0 !important;
  padding:14px !important;
  border:1px solid #d7e5dc !important;
  border-radius:16px !important;
  background:#f4fbf7 !important;
  color:#24323d !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  overflow:visible !important;
  position:relative !important;
  z-index:2 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form .rafi-consent-field span,
.rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field span,
.rafi-uc-booking-form .rafi-consent-field span,
.rafi-therapist-booking-calendar .rafi-consent-label span{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  color:#24323d !important;
  font-size:15px !important;
  line-height:1.45 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent,
.rafi-unified-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent,
.rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-tbc-consent,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-consent-checkbox{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-grid !important;
  place-content:center !important;
  visibility:visible !important;
  opacity:1 !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  float:none !important;
  flex:0 0 26px !important;
  width:26px !important;
  min-width:26px !important;
  max-width:26px !important;
  height:26px !important;
  min-height:26px !important;
  max-height:26px !important;
  margin:1px 0 0 0 !important;
  padding:0 !important;
  border:2px solid #2f6b57 !important;
  border-radius:7px !important;
  background:#ffffff !important;
  box-shadow:0 1px 2px rgba(0,0,0,.08) !important;
  cursor:pointer !important;
  transform:none !important;
  clip:auto !important;
  clip-path:none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked,
.rafi-unified-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked,
.rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-tbc-consent:checked,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-consent-checkbox:checked{
  background:#2f6b57 !important;
  border-color:#2f6b57 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked::after,
.rafi-unified-calendar .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked::after,
.rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent:checked::after,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-tbc-consent:checked::after,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-consent-checkbox:checked::after{
  content:"✓" !important;
  color:#fff !important;
  font-size:18px !important;
  font-weight:900 !important;
  line-height:1 !important;
}
@media(max-width:700px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form .rafi-consent-field,
  .rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field,
  .rafi-uc-booking-form .rafi-consent-field,
  .rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
  .rafi-therapist-booking-calendar .rafi-consent-field{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    margin:14px 0 16px !important;
    padding:14px !important;
    border-radius:16px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid > .rafi-consent-field,
  .rafi-unified-calendar .rafi-uc-form-grid > .rafi-consent-field,
  .rafi-uc-form-grid > .rafi-consent-field{
    grid-column:1 / -1 !important;
    order:20 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form .rafi-consent-field span,
  .rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field span,
  .rafi-uc-booking-form .rafi-consent-field span,
  .rafi-therapist-booking-calendar .rafi-consent-label span{
    font-size:14px !important;
  }
}

/* Rafimotion Booking v6.1.8 custom visible consent box fix */
.rafi-consent-field input[type="checkbox"].rafi-consent-checkbox,
.rafi-consent-field input[type="checkbox"].rafi-uc-consent,
.rafi-consent-field input[type="checkbox"].rafi-tbc-consent{
  position:absolute !important;
  opacity:0 !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}
.rafi-consent-field .rafi-consent-box,
.rafi-consent-label .rafi-consent-box{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:28px !important;
  min-width:28px !important;
  height:28px !important;
  min-height:28px !important;
  border:2px solid #2f6b57 !important;
  border-radius:8px !important;
  background:#fff !important;
  box-shadow:0 2px 5px rgba(0,0,0,.10) !important;
  flex:0 0 28px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
.rafi-consent-field input[type="checkbox"]:checked + .rafi-consent-box,
.rafi-consent-label input[type="checkbox"]:checked + .rafi-consent-box,
.rafi-consent-field.is-checked .rafi-consent-box{
  background:#2f6b57 !important;
  border-color:#2f6b57 !important;
}
.rafi-consent-field input[type="checkbox"]:checked + .rafi-consent-box::after,
.rafi-consent-label input[type="checkbox"]:checked + .rafi-consent-box::after,
.rafi-consent-field.is-checked .rafi-consent-box::after{
  content:"✓" !important;
  display:block !important;
  color:#fff !important;
  font-size:20px !important;
  font-weight:900 !important;
  line-height:1 !important;
}
.rafi-consent-field .rafi-consent-text,
.rafi-consent-label .rafi-consent-text{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  font-size:15px !important;
  line-height:1.45 !important;
  color:#1f2f3a !important;
}
@media(max-width:700px){
  .rafi-consent-field,
  .rafi-uc-consent-row,
  .rafi-gdpr-consent-row{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:12px !important;
    padding:14px !important;
    margin:16px 0 !important;
  }
  .rafi-consent-field .rafi-consent-box,
  .rafi-consent-label .rafi-consent-box{
    width:30px !important;
    min-width:30px !important;
    height:30px !important;
    min-height:30px !important;
  }
  .rafi-consent-field .rafi-consent-text,
  .rafi-consent-label .rafi-consent-text{
    font-size:15px !important;
    line-height:1.5 !important;
  }
}


/* Rafimotion Booking v6.3.2 global consent visibility and parity fix */
.rafi-booking-form .rafi-consent-field,
.rafi-therapist-booking-calendar .rafi-consent-field,
.rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
.rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field,
.rafi-unified-calendar .rafi-uc-booking-form .rafi-uc-consent-row,
.rafi-uc-booking-form .rafi-consent-field,
.rafi-uc-booking-form .rafi-uc-consent-row{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  width:100% !important;
  max-width:100% !important;
  grid-column:1 / -1 !important;
  box-sizing:border-box !important;
  clear:both !important;
  margin:16px 0 !important;
  padding:14px 16px !important;
  border:1px solid #d7e5dc !important;
  border-radius:16px !important;
  background:#f4fbf7 !important;
  color:#24323d !important;
  line-height:1.45 !important;
  overflow:visible !important;
  position:relative !important;
}
.rafi-booking-form .rafi-consent-label,
.rafi-therapist-booking-calendar .rafi-consent-label,
.rafi-unified-calendar .rafi-consent-label,
.rafi-uc-booking-form .rafi-consent-label,
.rafi-consent-field > label,
label.rafi-consent-field{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  width:100% !important;
  max-width:100% !important;
  cursor:pointer !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.rafi-booking-form input[type="checkbox"].rafi-consent-checkbox,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-consent-checkbox,
.rafi-therapist-booking-calendar input[type="checkbox"].rafi-tbc-consent,
.rafi-unified-calendar input[type="checkbox"].rafi-uc-consent,
.rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent,
.rafi-consent-field input[type="checkbox"],
.rafi-gdpr-consent-row input[type="checkbox"],
.rafi-uc-consent-row input[type="checkbox"]{
  -webkit-appearance:checkbox !important;
  appearance:auto !important;
  display:inline-block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:static !important;
  left:auto !important;
  top:auto !important;
  float:none !important;
  width:24px !important;
  min-width:24px !important;
  max-width:24px !important;
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  margin:2px 0 0 0 !important;
  padding:0 !important;
  border:1px solid #2f6b57 !important;
  border-radius:4px !important;
  accent-color:#2f6b57 !important;
  background:#fff !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transform:none !important;
  clip:auto !important;
  clip-path:none !important;
  pointer-events:auto !important;
  flex:0 0 24px !important;
  z-index:5 !important;
}
.rafi-consent-field .rafi-consent-box,
.rafi-consent-label .rafi-consent-box{
  display:none !important;
}
.rafi-booking-form .rafi-consent-text,
.rafi-therapist-booking-calendar .rafi-consent-text,
.rafi-unified-calendar .rafi-consent-text,
.rafi-uc-booking-form .rafi-consent-text,
.rafi-consent-field span{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  color:#1f2f3a !important;
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.45 !important;
}
@media(max-width:700px){
  .rafi-booking-form .rafi-consent-field,
  .rafi-therapist-booking-calendar .rafi-consent-field,
  .rafi-therapist-booking-calendar .rafi-gdpr-consent-row,
  .rafi-unified-calendar .rafi-uc-booking-form .rafi-consent-field,
  .rafi-uc-booking-form .rafi-consent-field,
  .rafi-uc-booking-form .rafi-uc-consent-row{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:12px !important;
    margin:14px 0 16px !important;
    padding:14px !important;
    border-radius:16px !important;
  }
  .rafi-booking-form input[type="checkbox"].rafi-consent-checkbox,
  .rafi-therapist-booking-calendar input[type="checkbox"].rafi-consent-checkbox,
  .rafi-therapist-booking-calendar input[type="checkbox"].rafi-tbc-consent,
  .rafi-unified-calendar input[type="checkbox"].rafi-uc-consent,
  .rafi-uc-booking-form input[type="checkbox"].rafi-uc-consent,
  .rafi-consent-field input[type="checkbox"]{
    width:26px !important;
    min-width:26px !important;
    max-width:26px !important;
    height:26px !important;
    min-height:26px !important;
    max-height:26px !important;
  }
  .rafi-consent-field .rafi-consent-text,
  .rafi-consent-field span{
    font-size:15px !important;
    line-height:1.5 !important;
  }
}

/* v6.3.3 session format selector */
.rafi-session-mode-field select,
.rafi-tbc-session-mode,
.rafi-uc-session-mode{
  width:100% !important;
  min-height:46px !important;
  border:1px solid var(--rafi-border, #d9d2c8) !important;
  border-radius:14px !important;
  padding:10px 12px !important;
  background:#fff !important;
  color:#1f2f3a !important;
  font-size:16px !important;
  font-weight:700 !important;
  box-sizing:border-box !important;
}
.rafi-session-mode-field{
  display:block !important;
  margin:12px 0 !important;
}

/* v6.3.6 smart 42-day navigation for combined calendar */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin: 6px 0 16px !important;
  padding: 12px !important;
  background: var(--rb-readable-soft) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 18px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:42px !important;
  padding: 9px 14px !important;
  border-radius: 14px !important;
  border: 1px solid var(--rb-readable-line) !important;
  background:#fff !important;
  color: var(--rb-readable-text) !important;
  text-decoration:none !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn:hover{
  border-color: var(--rb-readable-primary) !important;
  background: var(--rb-readable-card) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn.is-disabled{
  opacity:.42 !important;
  cursor:not-allowed !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period{
  color: var(--rb-readable-text) !important;
  font-size: 16px !important;
  text-align:center !important;
  white-space:nowrap !important;
}
@media (max-width: 700px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period{
    order:-1 !important;
  }
}


/* v6.3.7 clearer week navigation spacing for combined calendar */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
  display:grid !important;
  grid-template-columns:minmax(170px,auto) 1fr minmax(170px,auto) !important;
  align-items:center !important;
  gap:22px !important;
  margin:22px 0 26px !important;
  padding:16px 18px !important;
  border:1px solid var(--rb-line,#d9e7df) !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.82) !important;
  box-shadow:0 12px 28px rgba(15,23,42,.06) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period-wrap{
  text-align:center !important;
  min-width:0 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period{
  display:block !important;
  font-size:clamp(20px,2.4vw,28px) !important;
  font-weight:900 !important;
  letter-spacing:.03em !important;
  line-height:1.2 !important;
  white-space:normal !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period-note{
  display:block !important;
  margin-top:6px !important;
  color:var(--rb-muted,#667085) !important;
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip{
  gap:18px !important;
  padding:0 0 26px !important;
  margin-bottom:4px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day{
  min-width:112px !important;
  padding:16px 18px !important;
  border-radius:18px !important;
}
@media(max-width:760px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin:18px 0 20px !important;
    padding:14px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period-wrap{order:-1 !important;}
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn{width:100% !important;}
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip{gap:10px !important;padding-bottom:20px !important;}
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day{min-width:92px !important;padding:12px 14px !important;}
}


/* v6.3.8 booking form width fix after selecting event/session */
.rafi-unified-calendar.rafi-combined-calendar,
.rafi-unified-calendar.rafi-combined-calendar *{
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:block !important;
  clear:both !important;
  box-sizing:border-box !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-form{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:block !important;
  box-sizing:border-box !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(240px,1fr)) !important;
  gap:16px !important;
  box-sizing:border-box !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid label,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid .rafi-consent-field,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid .rafi-gdpr-consent-row,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid .rafi-uc-consent-row{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  white-space:normal !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid textarea,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid input,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid select{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid label:has(textarea),
.rafi-unified-calendar.rafi-combined-calendar .rafi-session-mode-field,
.rafi-unified-calendar.rafi-combined-calendar .rafi-consent-field,
.rafi-unified-calendar.rafi-combined-calendar .rafi-gdpr-consent-row,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-consent-row{
  grid-column:1 / -1 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-picked{
  white-space:normal !important;
  line-height:1.45 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-submit,
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-clear{
  display:inline-flex !important;
  width:auto !important;
  min-width:140px !important;
  justify-content:center !important;
  align-items:center !important;
  white-space:nowrap !important;
}
@media(max-width:760px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-form-grid{
    grid-template-columns:1fr !important;
  }
}


/* v6.3.9 hide duplicate bottom booking form until a free therapy hour is selected */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[style*="display:none"],
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[style*="display: none"]{
  display:none !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box{
  margin-top:22px !important;
}


/* v6.4.0 enforce hidden bottom therapy form until a slot is clicked */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[hidden],
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[data-rafi-hidden-until-slot="1"][hidden]{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box:not([hidden]){
  display:block !important;
  visibility:visible !important;
  height:auto !important;
  overflow:visible !important;
}


/* v6.5.0 dynamic booking box fix */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-dynamic-target:empty{
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[hidden],
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-booking-box[data-rafi-hidden-until-slot="1"]{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-dynamic-target .rafi-uc-booking-box:not([hidden]){
  display:block !important;
  visibility:visible !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  margin:22px 0 0 !important;
  padding:16px !important;
  border:1px solid var(--rb-line,#d9e7df) !important;
}

/* v6.6.0 payment/message payload event fields */
.rafi-uc-meta strong{font-weight:800!important}


/* v6.7.1 public booking form cleanup */
.rafi-booking-form h3:contains("Известия"),
.rafi-booking-form h4:contains("Организатор"){
  display:none !important;
}
.rafi-booking-form .rafi-reservation-day-box{
  margin:14px 0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
.rafi-booking-form .rafi-reservation-day-box small,
.rafi-booking-form .rafi-reservation-day-box span{
  display:none !important;
}
.rafi-booking-form input,
.rafi-booking-form select,
.rafi-booking-form textarea{
  font-size:16px !important;
}


/* v6.7.2 hide individual-session info from public calendar; keep it for message payloads */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-therapy > .rafi-uc-meta{
  display:none !important;
}


/* v6.8.1 payment info only in messages, not in public calendar */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-events .rafi-uc-meta{
  /* keep normal event meta visible */
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-events .rafi-uc-meta:has(.rafi-price),
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-events .rafi-payment-meta{
  display:none !important;
}


/* v6.8.2 event details link in calendar */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-link-wrap{
  margin-top:10px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:34px !important;
  padding:7px 12px !important;
  border:1px solid var(--rb-line,#d9e7df) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--rb-primary,#2f6b57) !important;
  text-decoration:none !important;
  font-weight:800 !important;
  font-size:13px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-link:hover{
  border-color:var(--rb-primary,#2f6b57) !important;
  background:var(--rb-soft,#f4fbf7) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-box{
  margin-top:10px !important;
  padding:10px 12px !important;
  border:1px solid var(--rb-line,#d9e7df) !important;
  border-radius:12px !important;
  background:#fff !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-box summary{
  cursor:pointer !important;
  font-weight:800 !important;
  color:var(--rb-primary,#2f6b57) !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-details-box div{
  margin-top:8px !important;
  color:var(--rb-text,#172332) !important;
  line-height:1.45 !important;
}


/* v6.9.1 mobile week navigation */
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
  gap:16px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn{
  min-height:48px !important;
  padding:11px 18px !important;
  font-size:15px !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-nav-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:18px !important;
  line-height:1 !important;
}
.rafi-unified-calendar.rafi-combined-calendar .rafi-nav-text{
  display:inline-block !important;
}

@media(max-width:760px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    grid-template-areas:
      "period period"
      "prev next" !important;
    gap:10px !important;
    margin:16px 0 18px !important;
    padding:12px !important;
    border-radius:16px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period-wrap{
    grid-area:period !important;
    order:0 !important;
    padding:2px 4px 8px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period{
    font-size:20px !important;
    line-height:1.18 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-period-note{
    font-size:12px !important;
    margin-top:4px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-prev{
    grid-area:prev !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-next{
    grid-area:next !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn{
    width:100% !important;
    min-width:0 !important;
    min-height:52px !important;
    padding:10px 12px !important;
    border-radius:14px !important;
    font-size:14px !important;
    gap:8px !important;
    box-sizing:border-box !important;
    box-shadow:0 8px 18px rgba(15,23,42,.06) !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn.is-disabled{
    opacity:.32 !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-nav-icon{
    width:24px !important;
    height:24px !important;
    border-radius:999px !important;
    background:var(--rb-soft,#f4fbf7) !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-daystrip{
    gap:8px !important;
    padding-bottom:16px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-day{
    min-width:84px !important;
    padding:11px 12px !important;
  }
}

@media(max-width:420px){
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav{
    gap:8px !important;
    padding:10px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-uc-nav-btn{
    min-height:50px !important;
    padding:9px 8px !important;
    font-size:13px !important;
  }
  .rafi-unified-calendar.rafi-combined-calendar .rafi-nav-icon{
    width:22px !important;
    height:22px !important;
    font-size:16px !important;
  }
}

/* v6.9.2 booking success modal */
.rafi-booking-success-modal{position:fixed!important;inset:0!important;z-index:999999!important;display:none!important;align-items:center!important;justify-content:center!important;padding:22px!important;background:rgba(15,23,42,.42)!important}
.rafi-booking-success-modal.is-visible{display:flex!important}
.rafi-booking-success-card{width:min(460px,100%)!important;position:relative!important;background:#fff!important;border-radius:22px!important;padding:28px!important;box-shadow:0 24px 70px rgba(15,23,42,.22)!important;color:#172332!important;text-align:left!important}
.rafi-booking-success-card h3{margin:0 0 10px!important;font-size:28px!important;line-height:1.15!important;letter-spacing:.03em!important}
.rafi-booking-success-card p{margin:0 0 18px!important;font-size:16px!important;line-height:1.5!important;color:#4d5b66!important}
.rafi-success-close{position:absolute!important;right:14px!important;top:12px!important;border:0!important;background:transparent!important;font-size:28px!important;line-height:1!important;cursor:pointer!important;color:#4d5b66!important}
.rafi-success-ok{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;padding:10px 18px!important;border:0!important;border-radius:14px!important;background:var(--rb-primary,#2f6b57)!important;color:var(--rb-primary-text,#fff)!important;font-weight:800!important;cursor:pointer!important}
@media(max-width:520px){.rafi-booking-success-card{padding:24px 20px!important;border-radius:18px!important}.rafi-booking-success-card h3{font-size:24px!important}}

/* Booking v6.9.9 direct buttons */
.rafi-booking-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:10px;background:var(--rb-primary,#23332a);color:var(--rb-primary-text,#fff)!important;text-decoration:none!important;font-weight:700;line-height:1.2}.rafi-booking-button:hover{filter:brightness(.96)}.rafi-booking-button .dashicons{font-size:18px;width:18px;height:18px}.rafi-booking-button-icon{display:inline-flex;align-items:center}


/* Booking v6.9.12 unified public theme: booking calendar + therapist/client dashboards */
.rafi-therapist-booking-calendar,
.rafi-therapist-dashboard,
.rafi-client-dashboard {
  --rb-readable-primary: var(--rb-primary, #2f5d50);
  --rb-readable-primary-text: var(--rb-primary-text, #ffffff);
  --rb-readable-accent: #8cbf9f;
  --rb-readable-bg: #fafaf8;
  --rb-readable-card: #ffffff;
  --rb-readable-text: #24323d;
  --rb-readable-muted: #5d6872;
  --rb-readable-line: #dfe6df;
  --rb-readable-soft: #f3f7f3;
  width: 100% !important;
  max-width: 1080px !important;
  margin: 24px auto !important;
  padding: 28px !important;
  background: var(--rb-readable-bg) !important;
  color: var(--rb-readable-text) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 28px !important;
  box-shadow: 0 22px 70px rgba(36,50,61,.09) !important;
}

.rafi-therapist-booking-calendar h2,
.rafi-therapist-booking-calendar h3,
.rafi-therapist-dashboard h2,
.rafi-therapist-dashboard h3,
.rafi-client-dashboard h2,
.rafi-client-dashboard h3 {
  color: var(--rb-readable-text) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: .035em !important;
}

.rafi-therapist-booking-calendar > h3.rafi-tbc-title,
.rafi-therapist-dashboard > h2,
.rafi-client-dashboard > h2 {
  margin: 0 0 18px !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid var(--rb-readable-line) !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  letter-spacing: .055em !important;
}

.rafi-therapist-dashboard section,
.rafi-client-dashboard-section,
.rafi-therapist-booking-calendar .rafi-service-field,
.rafi-therapist-booking-calendar .rafi-tbc-form {
  background: var(--rb-readable-card) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 22px !important;
  padding: 20px !important;
  box-shadow: 0 10px 30px rgba(36,50,61,.045) !important;
}

.rafi-therapist-dashboard section + section,
.rafi-client-dashboard-section + .rafi-client-dashboard-section {
  margin-top: 20px !important;
}

.rafi-therapist-dashboard section > h3,
.rafi-client-dashboard-section > h3 {
  margin: 0 0 14px !important;
  font-size: clamp(21px, 3vw, 29px) !important;
}

.rafi-therapist-booking-calendar .rafi-booking-progress span,
.rafi-dashboard-tab {
  background: var(--rb-readable-soft) !important;
  color: var(--rb-readable-muted) !important;
  border: 1px solid var(--rb-readable-line) !important;
}
.rafi-therapist-booking-calendar .rafi-booking-progress span.is-active,
.rafi-dashboard-tab.is-active {
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  border-color: var(--rb-readable-primary) !important;
}

.rafi-therapist-booking-calendar label,
.rafi-therapist-dashboard label,
.rafi-client-dashboard label {
  color: var(--rb-readable-text) !important;
  font-weight: 700 !important;
}

.rafi-therapist-booking-calendar input:not([type="checkbox"]):not([type="radio"]),
.rafi-therapist-booking-calendar select,
.rafi-therapist-booking-calendar textarea,
.rafi-therapist-dashboard input:not([type="checkbox"]):not([type="radio"]),
.rafi-therapist-dashboard select,
.rafi-therapist-dashboard textarea,
.rafi-client-dashboard input:not([type="checkbox"]):not([type="radio"]),
.rafi-client-dashboard select,
.rafi-client-dashboard textarea {
  min-height: 46px !important;
  padding: 10px 12px !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--rb-readable-text) !important;
  box-shadow: none !important;
}

.rafi-therapist-booking-calendar textarea,
.rafi-therapist-dashboard textarea,
.rafi-client-dashboard textarea { min-height: 96px !important; }

.rafi-therapist-booking-calendar input:focus,
.rafi-therapist-booking-calendar select:focus,
.rafi-therapist-booking-calendar textarea:focus,
.rafi-therapist-dashboard input:focus,
.rafi-therapist-dashboard select:focus,
.rafi-therapist-dashboard textarea:focus,
.rafi-client-dashboard input:focus,
.rafi-client-dashboard select:focus,
.rafi-client-dashboard textarea:focus {
  outline: none !important;
  border-color: var(--rb-readable-accent) !important;
  box-shadow: 0 0 0 3px rgba(140,191,159,.18) !important;
}

.rafi-therapist-booking-calendar button:not(.rafi-tbc-slot):not(.rafi-tbc-daybtn),
.rafi-therapist-dashboard button,
.rafi-therapist-dashboard a[href*="admin-post.php"],
.rafi-client-dashboard button,
.rafi-client-dashboard .rafi-client-actions a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 10px 16px !important;
  border: 1px solid var(--rb-readable-primary) !important;
  border-radius: 14px !important;
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  box-shadow: 0 8px 18px rgba(36,50,61,.08) !important;
}

.rafi-therapist-booking-calendar button:not(.rafi-tbc-slot):not(.rafi-tbc-daybtn):hover,
.rafi-therapist-dashboard button:hover,
.rafi-therapist-dashboard a[href*="admin-post.php"]:hover,
.rafi-client-dashboard button:hover,
.rafi-client-dashboard .rafi-client-actions a:hover {
  transform: translateY(-1px) !important;
  filter: brightness(.97) !important;
}

.rafi-therapist-booking-calendar .rafi-tbc-daybtn {
  min-width: 94px !important;
  min-height: 66px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  color: var(--rb-readable-text) !important;
  box-shadow: 0 6px 18px rgba(36,50,61,.04) !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-daybtn:hover,
.rafi-therapist-booking-calendar .rafi-tbc-daybtn.is-active {
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  border-color: var(--rb-readable-primary) !important;
}

.rafi-therapist-booking-calendar .rafi-tbc-slot.is-available {
  background: #e8f7ee !important;
  color: #1f6b45 !important;
  border-color: #bfe6cf !important;
  border-radius: 16px !important;
  min-height: 58px !important;
  box-shadow: none !important;
}
.rafi-therapist-booking-calendar .rafi-tbc-slot.is-available:hover,
.rafi-therapist-booking-calendar .rafi-tbc-slot.is-selected {
  background: var(--rb-readable-primary) !important;
  color: var(--rb-readable-primary-text) !important;
  border-color: var(--rb-readable-primary) !important;
  box-shadow: 0 12px 28px rgba(47,93,80,.22) !important;
}

.rafi-therapist-dashboard table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 16px !important;
}
.rafi-therapist-dashboard th {
  padding: 12px !important;
  background: var(--rb-readable-soft) !important;
  color: var(--rb-readable-text) !important;
  border-bottom: 1px solid var(--rb-readable-line) !important;
  text-align: left !important;
  font-weight: 800 !important;
}
.rafi-therapist-dashboard td {
  padding: 12px !important;
  color: var(--rb-readable-text) !important;
  border-bottom: 1px solid var(--rb-readable-line) !important;
  vertical-align: top !important;
}
.rafi-therapist-dashboard tbody tr:last-child td { border-bottom: 0 !important; }

.rafi-client-card {
  background: #fff !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 18px !important;
  padding: 16px !important;
  box-shadow: 0 6px 20px rgba(36,50,61,.035) !important;
}
.rafi-client-card strong { color: var(--rb-readable-text) !important; }
.rafi-client-meta { color: var(--rb-readable-muted) !important; }
.rafi-client-status,
.rafi-client-empty {
  background: var(--rb-readable-soft) !important;
  color: var(--rb-readable-muted) !important;
  border: 1px solid var(--rb-readable-line) !important;
}
.rafi-client-empty {
  border-style: dashed !important;
  border-radius: 16px !important;
  padding: 16px !important;
}
.rafi-client-inline-form {
  background: var(--rb-readable-soft) !important;
  border: 1px solid var(--rb-readable-line) !important;
  border-radius: 16px !important;
  padding: 16px !important;
}

.rafi-tbc-admin-helper {
  border-color: var(--rb-readable-line) !important;
  background: var(--rb-readable-soft) !important;
  color: var(--rb-readable-text) !important;
}

@media (max-width: 760px) {
  .rafi-therapist-booking-calendar,
  .rafi-therapist-dashboard,
  .rafi-client-dashboard {
    margin: 14px auto !important;
    padding: 18px !important;
    border-radius: 22px !important;
  }
  .rafi-therapist-dashboard section,
  .rafi-client-dashboard-section,
  .rafi-therapist-booking-calendar .rafi-service-field,
  .rafi-therapist-booking-calendar .rafi-tbc-form {
    padding: 16px !important;
    border-radius: 18px !important;
  }
  .rafi-therapist-dashboard table { min-width: 760px !important; }
  .rafi-client-card { grid-template-columns: 1fr !important; }
  .rafi-client-actions { justify-content: flex-start !important; }
}
