/* Shared rules panel: explicit colors keep it readable inside light and dark themes. */
.pbfh-booking-rule-details {
    background:var(--pbfh-details-bg,#f8fafc)!important;
    color:var(--pbfh-details-text,#243247)!important;
    border:1px solid var(--pbfh-details-border,#dce5ee);
    border-radius:var(--pbfh-details-radius,16px);
    padding:clamp(16px,3vw,24px);text-align:left!important;line-height:1.55;
    margin:16px 0;box-sizing:border-box;
}
.pbfh-booking-rule-details>strong {display:block;color:var(--pbfh-details-text,#243247)!important;font-size:1.12em;font-weight:750;margin:0 0 16px;letter-spacing:-.02em;}
.pbfh-booking-rule-details .pbfh-rule-grid {list-style:none!important;margin:0!important;padding:0!important;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:12px;}
.pbfh-booking-rule-details .pbfh-rule-grid>li {list-style:none!important;margin:0!important;padding:12px 14px!important;border:1px solid var(--pbfh-details-border,#dce5ee);border-left:3px solid var(--pbfh-details-accent,#0891b2);border-radius:10px;line-height:1.55;color:var(--pbfh-details-text,#243247)!important;overflow-wrap:anywhere;}
.pbfh-booking-rule-details .pbfh-rule-label {display:block;font-size:.82em;font-weight:750;letter-spacing:.045em;text-transform:uppercase;margin:0 0 5px;color:var(--pbfh-details-accent,#0891b2)!important;}
.pbfh-booking-rule-details .pbfh-rule-body {display:block;color:var(--pbfh-details-text,#243247)!important;font-weight:400;}
/* Same existing add-on controls, presented as cards instead of isolated dots. */
.pbfh-addons-list.pbfh-addons-cards {display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px!important;}
.pbfh-addons-list>.pbfh-upgrade-section {grid-column:1/-1;margin:18px 0 0!important;padding:0 0 10px!important;border-bottom:1px solid var(--pbfh-bkpg-addon-border,#dce5ee);font-size:1.1rem;font-weight:750;}
.pbfh-addons-list .pbfh-addon-item {position:relative;display:flex!important;align-items:flex-start;flex-wrap:wrap;gap:14px;padding:20px!important;margin:0!important;background:var(--pbfh-bkpg-addon-bg,#fff)!important;border:2px solid var(--pbfh-bkpg-addon-border,#e5e7eb)!important;border-radius:var(--pbfh-bkpg-addon-radius,14px)!important;box-shadow:0 3px 12px #10253c08;cursor:pointer;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;min-width:0;}
.pbfh-addons-list .pbfh-addon-item:hover {border-color:var(--pbfh-bkpg-addon-selected-border,#0891b2)!important;box-shadow:0 6px 20px #10253c10;}
.pbfh-addons-list .pbfh-addon-item:has(input[type=checkbox]:checked) {background:var(--pbfh-bkpg-addon-selected-bg,#ecfeff)!important;border-color:var(--pbfh-bkpg-addon-selected-border,#0891b2)!important;}
.pbfh-addons-list .pbfh-addon-item:focus-within {outline:3px solid var(--pbfh-bkpg-addon-checkbox,#0891b2);outline-offset:3px;}
.pbfh-addons-list .pbfh-addon-info {flex:1 1 170px;min-width:0;}
.pbfh-addons-list .pbfh-addon-name {color:var(--pbfh-bkpg-addon-name,#16324f)!important;font-size:1rem!important;line-height:1.35!important;font-weight:750;margin:0 0 8px!important;}
.pbfh-addons-list .pbfh-addon-desc {color:var(--pbfh-bkpg-addon-desc,#58677a)!important;font-size:.9rem!important;line-height:1.55!important;margin:0 0 12px!important;}
.pbfh-addons-list .pbfh-addon-price {color:var(--pbfh-bkpg-addon-price,#0e7490)!important;font-size:1.15rem!important;font-weight:750;}
.pbfh-addons-list .pbfh-price-type {font-size:.8em;font-weight:400;color:var(--pbfh-bkpg-addon-desc,#58677a)!important;}
.pbfh-addons-list .pbfh-addon-image {width:64px;height:64px;object-fit:cover;border-radius:10px;}
.pbfh-addons-list .pbfh-addon-qty {flex:1 0 100%;display:flex!important;gap:12px;align-items:center;justify-content:space-between;}
.pbfh-addons-list .pbfh-addon-checkbox {position:relative;display:inline-flex!important;align-items:center;gap:8px;cursor:pointer;min-height:44px;padding:8px 12px!important;border-radius:8px;border:1px solid var(--pbfh-bkpg-addon-border,#dce5ee);font-size:.85rem;font-weight:700;color:var(--pbfh-bkpg-addon-name,#16324f)!important;margin:0!important;}
.pbfh-addons-list .pbfh-addon-checkbox input[type=checkbox] {position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:0!important;}
.pbfh-addons-list .pbfh-checkmark {position:static!important;width:18px!important;height:18px!important;display:grid!important;place-items:center;border:1px solid var(--pbfh-bkpg-addon-border,#94a3b8);border-radius:5px!important;background:transparent;}
.pbfh-addons-list .pbfh-checkmark:after {display:none!important;}
.pbfh-addons-list input:checked+.pbfh-checkmark {background:var(--pbfh-bkpg-addon-checkbox,#0891b2)!important;border-color:var(--pbfh-bkpg-addon-checkbox,#0891b2)!important;color:#fff!important;}
.pbfh-addons-list input:checked+.pbfh-checkmark:before {content:'✓';font:700 13px/1 sans-serif;}
.pbfh-addon-action .pbfh-addon-added {display:none;}
.pbfh-addon-checkbox:has(input:checked) .pbfh-addon-add {display:none;}
.pbfh-addon-checkbox:has(input:checked) .pbfh-addon-added {display:inline;}
.pbfh-addons-list .pbfh-addon-qty-input input {width:76px!important;min-height:44px;padding:8px!important;border:1px solid var(--pbfh-bkpg-addon-border,#cbd5e1)!important;border-radius:8px;background:var(--pbfh-bkpg-addon-bg,#fff)!important;color:var(--pbfh-bkpg-addon-name,#16324f)!important;}
.pbfh-addons-list .pbfh-required-addon {display:inline-block;font-size:.7rem;font-weight:750;border-radius:20px;padding:3px 9px;background:#e0f2fe;color:#075985;margin:0 0 8px;}
@media(max-width:600px){.pbfh-addons-list.pbfh-addons-cards{grid-template-columns:1fr}.pbfh-booking-rule-details{padding:16px}.pbfh-booking-rule-details .pbfh-rule-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pbfh-addons-list .pbfh-addon-item{transition:none}}
/* Fees share the same visual hierarchy as booking details and upgrades. */
.pbfh-booking-form .pbfh-summary-fees {padding:0;border:0;border-radius:0;background:transparent;color:inherit;}
.pbfh-booking-form .pbfh-summary-fees>p {font-size:.85rem;margin:0 0 6px;line-height:1.4;}
.pbfh-booking-form .pbfh-booking-summary .pbfh-summary-section {margin:0 0 16px;}
.pbfh-booking-form .pbfh-summary-section h4 {margin:0 0 8px;padding-bottom:8px;}
.pbfh-booking-form .pbfh-summary-row {padding:8px 0;}
.pbfh-booking-form .pbfh-summary-section:last-child {margin-bottom:0;}

.pbfh-cal-day.available.opening-fee:not(.selected),.pbfh-vd-bp-p-cal-grid>.opening-fee {
    background:var(--pbfh-cal-fee-bg,#f3e8ff)!important;color:var(--pbfh-cal-fee-text,#6b21a8)!important;
    box-shadow:inset 0 0 0 1px var(--pbfh-cal-fee-border,#c084fc);position:relative;
}
.pbfh-cal-fee-badge {display:block;max-width:100%;font-size:clamp(8px,.75vw,11px);font-weight:700;line-height:1.2;padding:3px 4px;margin-top:4px;overflow-wrap:anywhere;text-align:center;color:var(--pbfh-cal-fee-text,#6b21a8)!important;background:var(--pbfh-cal-fee-bg,#f3e8ff);border-radius:4px;}
.pbfh-calendar .pbfh-cal-day.available.opening-fee:not(.selected) .day-number {color:var(--pbfh-cal-fee-text,#6b21a8)!important;}
.pbfh-cal-legend .legend-dot.opening-fee,.pbfh-vd-bp-p-cal-legend .legend-dot.opening-fee {background:var(--pbfh-cal-fee-bg,#f3e8ff)!important;border:1px solid var(--pbfh-cal-fee-border,#c084fc);}
.pbfh-vd-bp-text {width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:6px;}
.pbfh-upgrade-review-label {min-width:0;}
.pbfh-upgrade-price-basis {display:block;font-size:.85em;line-height:1.45;font-weight:400;margin-top:4px;opacity:.85;}
.pbfh-draft-notice {display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 14px;margin:0 0 16px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;color:#334155!important;font-size:13px;line-height:1.5;}
.pbfh-draft-clear {appearance:none;border:0;background:transparent;color:#075985!important;text-decoration:underline;cursor:pointer;font:inherit;padding:8px;min-height:40px;}
.pbfh-draft-clear:focus-visible {outline:2px solid #0891b2;outline-offset:2px;}
.pbfh-step-item.active:not(.completed) .pbfh-step-number {background:var(--pbfh-bkpg-step-active-bg,#3b82f6)!important;color:var(--pbfh-bkpg-step-active-text,#fff)!important;box-shadow:0 0 0 3px var(--pbfh-bkpg-step-active-bg,#3b82f6);outline:2px solid #fff;outline-offset:0;}
.pbfh-step-item.completed:not(.active) .pbfh-step-number {background:var(--pbfh-bkpg-step-completed-bg,#22c55e)!important;color:var(--pbfh-bkpg-step-completed-text,#fff)!important;transform:none;box-shadow:none;}
.pbfh-step-item.active .pbfh-step-label {color:var(--pbfh-bkpg-step-label-active,#1e3a5f)!important;}
.pbfh-step-item.completed:not(.active) .pbfh-step-label {color:var(--pbfh-bkpg-step-label-inactive,#64748b)!important;}

/* Reachable steps support touch and keyboard navigation. */
.pbfh-step-reachable {cursor:pointer;}
.pbfh-step-item:focus-visible {outline:3px solid var(--pbfh-bkpg-step-active-bg,#3b82f6);outline-offset:4px;border-radius:8px;}
.pbfh-step-item[aria-disabled="true"] {cursor:default;}
@media(max-width:767px){
 .pbfh-booking-page,.pbfh-booking-form-card,.pbfh-booking-form-container,.pbfh-form-step {min-width:0;max-width:100%;box-sizing:border-box;}
 .pbfh-booking-page {padding:12px!important;}
 .pbfh-step-indicator {gap:4px;padding:16px 4px!important;align-items:flex-start;}
 .pbfh-step-item {min-width:0;min-height:64px;flex:1 1 0;gap:8px;}
 .pbfh-step-number {width:36px!important;height:36px!important;flex-shrink:0;font-size:15px!important;}
 .pbfh-step-label {font-size:10px!important;line-height:1.3;letter-spacing:0;overflow-wrap:anywhere;}
 .pbfh-step-divider {display:none!important;}
 .pbfh-booking-form-container,.pbfh-form-step {padding:16px!important;}
 .pbfh-form-row input,.pbfh-form-row select,.pbfh-form-row textarea {font-size:16px!important;max-width:100%;box-sizing:border-box;}
 .pbfh-step-nav {display:flex;flex-wrap:wrap;gap:12px;}
 .pbfh-step-nav button,.pbfh-step-nav a {min-height:44px;flex:1 1 120px;white-space:normal;}
 .pbfh-time-slot {min-height:44px;}
 .pbfh-calendar-full .pbfh-cal-grid {grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}
 .pbfh-calendar-full .pbfh-cal-day {min-width:0;padding:10px 2px!important;min-height:44px;box-sizing:border-box;}
 .pbfh-cal-fee-badge {font-size:9px;overflow-wrap:anywhere;white-space:normal;}
 .pbfh-summary-row,.pbfh-upgrade-review-label {min-width:0;overflow-wrap:anywhere;}
 .pbfh-summary-row {gap:12px;flex-wrap:wrap;}
 .pbfh-draft-notice {flex-wrap:wrap;gap:12px;}
}
