.dbp-booking-app, .dbp-doctor-dashboard, .dbp-login-message, .dbp-confirmation-lookup { --dbp-orange:#df6d18; --dbp-ink:#414141; --dbp-soft-ink:#222; --dbp-muted:#878787; --dbp-line:#e8e8e8; --dbp-blue:#2c65ff; --dbp-pale-blue:#edf4ff; color:var(--dbp-soft-ink); font-family:inherit; box-sizing:border-box; }
.dbp-booking-app *, .dbp-doctor-dashboard *, .dbp-login-message *, .dbp-confirmation-lookup * { box-sizing:border-box; }

/* Keep primary controls consistent; date cells use keyboard-accessible non-button elements to avoid theme button overrides. */
.dbp-booking-app button,
.dbp-doctor-dashboard button {
  font-family: inherit;
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}
/* High-specificity, theme-proof calendar-cell reset. Cells use role=button elements to bypass theme button pseudo-styles. */
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day,
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day:focus,
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day:active {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: initial !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 30px !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 5px !important;
  outline-offset: 2px;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #202833 !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-align: center !important;
  text-indent: 0 !important;
  text-transform: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  overflow: visible !important;
}
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-unavailable,
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day[aria-disabled="true"] { background:#fff !important; background-color:#fff !important; color:#c1d0e6 !important; cursor:not-allowed !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-available { background:#fff !important; background-color:#fff !important; color:#141c27 !important; cursor:pointer !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-selected,
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-selected:hover { background:#3e72ff !important; background-color:#3e72ff !important; color:#fff !important; box-shadow:0 0 0 1px #3e72ff !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-available:hover:not([aria-disabled="true"]):not(.is-selected) { background:#f1f5ff !important; background-color:#f1f5ff !important; color:#141c27 !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day:before { display:none !important; content:none !important; background:none !important; box-shadow:none !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-available:after { content:"" !important; position:absolute !important; bottom:3px !important; left:calc(50% - 2.5px) !important; width:5px !important; height:5px !important; background:#3368ff !important; border-radius:50% !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day.is-selected:after { background:#fff !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day:not(.is-available):not(.is-selected):after { content:none !important; display:none !important; }
.dbp-booking-app .dbp-calendar-main .dbp-calendar-grid .dbp-day[aria-disabled="true"] { opacity:1 !important; }
.dbp-phone-field { display: grid; grid-template-columns: minmax(110px,.72fr) minmax(0,1.28fr); gap: 9px; min-width: 0; }
.dbp-phone-field label { min-width: 0; }
.dbp-phone-field select, .dbp-phone-field input { min-width: 0; max-width: 100%; }
.dbp-booking-app, .dbp-booking-layout, .dbp-calendar-card, .dbp-calendar-main, .dbp-patient-panel { min-width: 0; }

.dbp-booking-app { max-width:1180px; margin:0 auto; padding:28px 16px 36px; }
.dbp-page-heading { text-align:center; margin:0 auto 20px; }
.dbp-page-heading h2 { color:#454545; font-size:clamp(32px,4.5vw,66px); line-height:1.08; font-weight:800; letter-spacing:-1.8px; margin:0 0 20px; }
.dbp-page-heading h2 span { color:var(--dbp-orange); }
.dbp-page-heading p { font-size:clamp(18px,2vw,30px); line-height:1.35; font-weight:500; margin:0; }
.dbp-booking-layout { display:grid; grid-template-columns:minmax(270px, 0.72fr) minmax(0,1.55fr); gap:24px; align-items:stretch; }
.dbp-doctor-card, .dbp-calendar-card { border:1px solid var(--dbp-line); border-radius:11px; background:#fff; }
.dbp-doctor-card { padding:30px 30px 28px; min-width:0; }
.dbp-doctor-name { font-size:15px; line-height:1.4; font-weight:600; color:#161616; margin-bottom:26px; }
.dbp-doctor-card h3 { margin:0 0 12px; max-width:300px; font-size:23px; line-height:1.27; letter-spacing:-.3px; font-weight:600; }
.dbp-muted { color:var(--dbp-muted); font-size:13px; line-height:1.65; }
.dbp-doctor-card .dbp-muted { margin:0 0 22px; }
.dbp-meta-row { min-height:47px; border-bottom:1px solid #efefef; display:flex; align-items:center; gap:9px; font-size:14px; }
.dbp-line-icon { color:var(--dbp-blue); font-size:25px; line-height:1; width:17px; font-weight:600; }
.dbp-timezone { margin-top:40px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; color:#555; font-size:12px; }
.dbp-timezone strong { border:1px solid #ddd; border-radius:5px; padding:9px 10px; color:#454545; font-weight:400; }
.dbp-price { margin:16px 0 0; font-size:13px; color:#555; }
.dbp-price strong { color:#222; }
.dbp-calendar-card { min-height:415px; padding:34px 30px 26px; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(165px,.85fr); gap:18px; }
.dbp-calendar-main { min-width:0; }
.dbp-calendar-header { display:flex; justify-content:space-between; align-items:center; min-height:32px; padding:0 0 20px 5px; border-bottom:1px solid var(--dbp-line); gap:12px; }
.dbp-current-month { font-size:18px; margin:0; font-weight:600; }
.dbp-month-controls { display:flex; gap:16px; align-items:center; }
.dbp-month-controls button { width:21px; height:21px; border:0; border-radius:50%; background:#123456; color:white; font-size:21px; display:flex; align-items:center; justify-content:center; line-height:1; padding:0 0 3px; cursor:pointer; }
.dbp-month-controls button:disabled { background:#a8b0bd; cursor:not-allowed; opacity:.65; }
.dbp-weekdays, .dbp-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); column-gap:7px; }
.dbp-weekdays { padding-top:20px; padding-bottom:7px; }
.dbp-weekdays span { text-align:center; color:#777; font-size:12px; font-weight:600; }
.dbp-calendar-grid { row-gap:8px; min-height:235px; align-content:start; }
.dbp-day { appearance:none; min-width:0; width:100%; aspect-ratio:1.15; border:0; border-radius:4px; color:#202833; font:500 13px/1 inherit; background:transparent; display:flex; align-items:center; justify-content:center; position:relative; cursor:pointer; }
.dbp-day.is-available { color:#141c27; }
.dbp-day.is-available:after { content:""; position:absolute; bottom:3px; left:calc(50% - 2.5px); width:5px; height:5px; background:#3368ff; border-radius:50%; }
.dbp-day.is-unavailable { color:#c1d0e6; cursor:not-allowed; }
.dbp-day.is-selected { color:#fff; background:#3e72ff; box-shadow:0 0 0 1px #3e72ff; }
.dbp-day.is-selected:after { background:#fff; }
.dbp-day.is-today:not(.is-selected) { font-weight:800; }
.dbp-day:focus-visible, .dbp-time-slot:focus-visible { outline:2px solid #225ee8; outline-offset:2px; }
.dbp-calendar-spacer { min-height:30px; }
.dbp-calendar-loading { grid-column:1/-1; font-size:13px; color:#888; padding:25px 0; }
.dbp-times-panel { border-left:1px solid #eee; padding:18px 0 10px 25px; text-align:center; min-width:0; display:flex; flex-direction:column; align-items:stretch; }
.dbp-empty-calendar-icon { width:60px; margin:4px auto 12px; display:grid; grid-template-columns:repeat(3,16px); gap:5px; justify-content:center; }
.dbp-empty-calendar-icon span { display:flex; width:16px; height:16px; background:#eaf1f8; border-radius:3px; }
.dbp-empty-calendar-icon .dbp-icon-active { background:#69a3ff; color:#fff; align-items:center; justify-content:center; font-size:9px; font-weight:700; }
.dbp-times-prompt { margin:0 auto 14px; max-width:150px; font-size:12px; line-height:1.7; color:#546b87; }
.dbp-times-prompt.dbp-times-date { max-width:none; font-size:13px; color:#323e4d; font-weight:600; }
.dbp-time-slots { display:flex; flex-direction:column; gap:8px; overflow:auto; max-height:270px; padding:2px 3px 5px; }
.dbp-time-slot { padding:10px 7px; border:1px solid #d4dff0; background:#fff; color:#2355bc; border-radius:5px; font-size:13px; cursor:pointer; }
.dbp-time-slot:hover, .dbp-time-slot.is-selected { background:#edf4ff; border-color:#3e72ff; color:#1744a9; }
.dbp-no-slots, .dbp-slot-loading { color:#7e8795; font-size:12px; line-height:1.5; }
.dbp-patient-panel { border:1px solid var(--dbp-line); border-radius:11px; margin:22px 0 0; padding:26px 30px 30px; }
.dbp-form-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; flex-wrap:wrap; margin-bottom:20px; }
.dbp-form-heading h3 { font-size:22px; margin:0; font-weight:650; }
.dbp-selected-summary { margin:4px 0 0; color:#5d6e82; font-size:13px; }
.dbp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.dbp-form-grid label, .dbp-confirmation-lookup label { display:flex; flex-direction:column; gap:7px; font-size:13px; color:#383838; font-weight:600; }
.dbp-form-grid input, .dbp-form-grid select, .dbp-form-grid textarea, .dbp-confirmation-lookup input { width:100%; min-height:43px; border:1px solid #dcdfe3; border-radius:6px; padding:10px 12px; color:#242424; background:#fff; font:inherit; font-weight:400; }
.dbp-form-grid textarea { resize:vertical; }
.dbp-reason-field { grid-column:1/-1; }
.dbp-optional { color:#8b8b8b; font-weight:400; }
.dbp-honeypot { position:absolute!important; left:-9999px!important; height:1px!important; width:1px!important; overflow:hidden!important; }
.dbp-small-print { color:#7f7f7f; font-size:12px; line-height:1.65; }
.dbp-form-actions { display:flex; justify-content:flex-end; align-items:center; gap:15px; margin-top:18px; }
.dbp-back-to-calendar { border:0; padding:11px 14px; color:#4c4c4c; background:transparent; cursor:pointer; }
.dbp-pay-button, .dbp-primary-button { border:0; background:var(--dbp-orange); color:#fff; border-radius:6px; padding:13px 18px; font-size:14px; font-weight:650; cursor:pointer; }
.dbp-pay-button:disabled, .dbp-primary-button:disabled { opacity:.6; cursor:wait; }
.dbp-notice { margin-top:12px; font-size:13px; line-height:1.55; }
.dbp-notice:empty { display:none; }
.dbp-notice.is-error, .dbp-inline-error { color:#ac2727; }
.dbp-notice.is-info { color:#345a88; background:#eff5ff; padding:10px 12px; border-radius:5px; }
.dbp-confirmation-panel { margin-top:22px; padding:28px; border:1px solid #d9e9db; background:#fbfffb; border-radius:10px; text-align:center; }
.dbp-confirmation-check { width:43px; height:43px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#e3f5e6; color:#1a7d34; font-size:25px; margin:0 auto 14px; }
.dbp-confirmation-panel h3 { margin:5px 0 10px; font-size:23px; }
.dbp-confirmation-panel p { line-height:1.6; }
.dbp-eyebrow { color:var(--dbp-orange); font-size:10px; font-weight:800; letter-spacing:1.5px; margin:0 0 8px; }
.dbp-confirmation-id-label { margin:20px 0 5px; font-size:12px; color:#646464; }
.dbp-consultation-id { display:inline-block; padding:11px 17px; border:1px dashed #abcbb0; border-radius:7px; color:#1e6e2f; background:#fff; letter-spacing:.8px; font-weight:800; font-size:19px; }
.dbp-confirmation-details { font-weight:600; }
.dbp-privacy-note { text-align:center; color:#999; font-size:11px; margin:18px 0 0; }
.dbp-confirmation-standalone { max-width:600px; margin:24px auto; }
.dbp-confirmation-standalone dl { display:grid; grid-template-columns:150px 1fr; gap:10px 15px; text-align:left; max-width:430px; margin:20px auto; }
.dbp-confirmation-standalone dt { color:#777; font-size:13px; }
.dbp-confirmation-standalone dd { margin:0; font-weight:600; word-break:break-word; }
.dbp-confirmation-lookup { border:1px solid #eee; border-radius:10px; padding:24px; max-width:460px; margin:20px auto; }
.dbp-confirmation-lookup form { display:grid; gap:14px; }
.dbp-confirmation-lookup button { background:var(--dbp-orange); border:0; border-radius:6px; padding:12px 16px; color:#fff; cursor:pointer; }
.dbp-login-message { border:1px solid #eee; padding:20px; border-radius:10px; }

/* Frontend doctor dashboard */
.dbp-doctor-dashboard { max-width:1180px; margin:20px auto; padding:16px; }
.dbp-dashboard-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }
.dbp-dashboard-header h2 { margin:0 0 7px; font-size:clamp(26px,3vw,36px); color:#292929; }
.dbp-dashboard-header p:not(.dbp-eyebrow) { margin:0; color:#777; font-size:14px; }
.dbp-dashboard-chip { background:#eef7ee; color:#2f7d37; padding:7px 12px; border-radius:999px; font-size:12px; font-weight:650; white-space:nowrap; }
.dbp-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr); gap:18px; align-items:start; }
.dbp-dashboard-card { border:1px solid #e8e8e8; border-radius:10px; background:white; padding:23px; margin-bottom:18px; min-width:0; }
.dbp-fees-card { width:100%; }
.dbp-fee-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.dbp-fee-form-grid label { display:flex; flex-direction:column; gap:7px; min-width:0; color:#444; font-size:13px; font-weight:600; }
.dbp-fee-form-grid input { width:100%; min-width:0; border:1px solid #dedede; border-radius:6px; background:#fff; color:#252525; padding:11px 12px; font-size:14px; }
.dbp-field-help { color:#888; font-size:11px; font-weight:400; }
.dbp-fees-status { color:#4a7c4e; font-size:12px; line-height:1.5; }
.dbp-fees-status.is-error { color:#ac2727; }
.dbp-fees-status.is-success { color:#26733c; }

.dbp-section-title h3 { margin:0 0 5px; font-size:19px; color:#333; }
.dbp-section-title p { margin:0 0 16px; color:#888; font-size:12px; line-height:1.6; }
.dbp-week-schedule { display:flex; flex-direction:column; }
.dbp-week-row { display:grid; grid-template-columns:minmax(105px,1fr) minmax(90px,.9fr) 18px minmax(90px,.9fr); align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid #f0f0f0; }
.dbp-day-enable { display:flex; align-items:center; gap:9px; font-size:13px; color:#363636; }
.dbp-day-enable input { accent-color:var(--dbp-orange); width:15px; height:15px; }
.dbp-time-input { min-width:0; width:100%; border:1px solid #dedede; border-radius:5px; padding:8px; background:#fff; color:#333; font-size:13px; }
.dbp-time-input:disabled { background:#f7f7f7; color:#aaa; }
.dbp-time-to { text-align:center; font-size:12px; color:#999; }
.dbp-schedule-actions { display:flex; align-items:center; flex-wrap:wrap; gap:15px; margin-top:18px; }
.dbp-schedule-status { font-size:12px; color:#4a7c4e; }
.dbp-schedule-status.is-error { color:#ac2727; }
.dbp-schedule-status.is-success { color:#26733c; }
.dbp-secondary-button, .dbp-refresh-appointments { border:1px solid #dedede; background:#fff; color:#3b3b3b; border-radius:5px; padding:10px 13px; font-size:12px; font-weight:600; cursor:pointer; }
.dbp-block-date-form label { font-size:12px; display:block; margin-bottom:7px; font-weight:600; }
.dbp-block-date-row { display:flex; gap:8px; }
.dbp-block-date-row input { border:1px solid #ddd; padding:9px; width:100%; min-width:0; border-radius:5px; }
.dbp-blocked-list { margin-top:17px; }
.dbp-blocked-date-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid #f0f0f0; font-size:12px; }
.dbp-remove-date, .dbp-cancel-appointment { border:0; background:transparent; color:#b43f36; font-size:12px; cursor:pointer; padding:5px; }
.dbp-appointments-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.dbp-table-wrap { width:100%; overflow-x:auto; }
.dbp-appointments-table { width:100%; border-collapse:collapse; text-align:left; font-size:12px; }
.dbp-appointments-table th { background:#fafafa; color:#777; font-size:10px; text-transform:uppercase; letter-spacing:.5px; }
.dbp-appointments-table th, .dbp-appointments-table td { padding:13px 11px; vertical-align:top; border-bottom:1px solid #ececec; min-width:105px; }
.dbp-appointments-table td strong { display:block; font-weight:650; color:#333; line-height:1.45; }
.dbp-table-subtext { display:block; font-size:11px; color:#888; margin-top:4px; line-height:1.4; }
.dbp-patient-link { display:block; color:#3d67af; word-break:break-word; margin-top:3px; }
.dbp-reason-preview { display:block; margin-top:7px; max-width:200px; color:#777; line-height:1.4; }
.dbp-id-cell { font-weight:700; color:#3b5e91; word-break:break-word; }
.dbp-status-chip { display:inline-block; padding:5px 7px; background:#f2f2f2; color:#666; border-radius:4px; text-transform:capitalize; white-space:nowrap; }
.dbp-status-chip.status-confirmed { background:#e9f6eb; color:#2d7d3c; }
.dbp-status-chip.status-pending_payment { background:#fff4dc; color:#93651c; }
.dbp-status-chip.status-payment_failed, .dbp-status-chip.status-cancelled { background:#fff0ef; color:#ab3e37; }
.dbp-appointments-only { padding:0; }

@media (max-width:900px) {
  .dbp-booking-layout { grid-template-columns:minmax(0,1fr); }
  .dbp-calendar-card { grid-template-columns:minmax(0,1fr); }
  .dbp-doctor-card { padding:24px; }
  .dbp-doctor-name { margin-bottom:15px; }
  .dbp-timezone { margin-top:20px; }
  .dbp-calendar-card { padding:25px 20px 23px; }
  .dbp-dashboard-grid { grid-template-columns:1fr; }
}
@media (max-width:580px) {
  .dbp-booking-app { padding:18px 10px 28px; }
  .dbp-page-heading h2 { font-size:33px; letter-spacing:-.8px; margin-bottom:11px; }
  .dbp-page-heading p { font-size:17px; }
  .dbp-calendar-card { width:100%; grid-template-columns:minmax(0,1fr); gap:20px; padding:19px 13px; overflow:hidden; }
  .dbp-calendar-main { width:100%; min-width:0; }
  .dbp-weekdays, .dbp-calendar-grid { width:100%; grid-template-columns:repeat(7,minmax(0,1fr)); column-gap:2px; }
  .dbp-booking-app .dbp-calendar-grid > .dbp-day { min-height:32px; aspect-ratio:1 / 1; font-size:12px !important; }
  .dbp-calendar-header { padding-left:1px; }
  .dbp-current-month { font-size:16px; }
  .dbp-month-controls { gap:9px; }
  .dbp-weekdays, .dbp-calendar-grid { column-gap:3px; }
  .dbp-weekdays span { font-size:11px; }
  .dbp-calendar-grid { min-height:auto; row-gap:5px; }
  .dbp-day { font-size:12px; aspect-ratio:1.02; }
  .dbp-times-panel { border-left:0; border-top:1px solid #eee; padding:18px 2px 0; }
  .dbp-empty-calendar-icon { display:none; }
  .dbp-times-prompt { max-width:none; margin-bottom:12px; }
  .dbp-time-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-height:220px; }
  .dbp-patient-panel { padding:20px 15px; }
  .dbp-form-grid { grid-template-columns:minmax(0,1fr); }
  .dbp-phone-field { grid-template-columns:minmax(100px,.72fr) minmax(0,1.28fr); }
  .dbp-reason-field { grid-column:auto; }
  .dbp-form-actions { flex-direction:column-reverse; align-items:stretch; gap:8px; }
  .dbp-pay-button { width:100%; }
  .dbp-back-to-calendar { width:100%; }
  .dbp-confirmation-panel { padding:22px 14px; }
  .dbp-consultation-id { font-size:16px; }
  .dbp-confirmation-standalone dl { grid-template-columns:1fr; gap:4px; }
  .dbp-confirmation-standalone dd { margin-bottom:10px; }
  .dbp-dashboard-header { align-items:flex-start; }
  .dbp-dashboard-chip { display:none; }
  .dbp-dashboard-card { padding:16px 12px; }
  .dbp-fee-form-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .dbp-week-row { grid-template-columns:minmax(85px,1fr) minmax(80px,.9fr) 12px minmax(80px,.9fr); gap:5px; }
  .dbp-day-enable { gap:5px; font-size:11px; }
  .dbp-time-input { padding:6px 4px; font-size:11px; }
  .dbp-block-date-row { flex-direction:column; }
  .dbp-appointments-heading { align-items:flex-start; }
}

.dbp-check-payment { margin:10px 0 0; display:inline-block; border:1px solid #cad9ee; border-radius:5px; background:#fff; color:#244c82; padding:8px 12px; cursor:pointer; font:inherit; font-size:12px; font-weight:650; }
.dbp-check-payment:disabled { opacity:.6; cursor:wait; }

@media (max-width:360px) { .dbp-phone-field { grid-template-columns:minmax(0,1fr); } .dbp-page-heading h2 { font-size:29px; } .dbp-calendar-card { padding:16px 9px; } }
