/* Scoped styles adapted from the user-supplied Novin reference. */
.hbp-native-hidden{display:none!important}
.hbp-date-original{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;overflow:hidden!important;padding:0!important;border:0!important}
/* Hamzeh: Bookly's ".bookly-form input[type=text]{width:100%!important}" outranked the rule above, so the hidden
   input kept its full width and, positioned absolutely in RTL, widened the page sideways. */
.bookly-form input.hbp-date-original[type],.bookly-form input.hbp-date-original{width:1px!important;min-width:0!important;height:1px!important;padding:0!important;border:0!important}
.hbp-date-proxy{direction:rtl;text-align:right;cursor:pointer}
.hbp-calendar{
    --hbp-accent:var(--bookly-main-color,#f4662b);
    --hbp-accent-soft:#fff4ed;
    --hbp-border:#e2e8f0;
    --hbp-muted:#64748b;
    --hbp-text:#1f2937;
    box-sizing:border-box;
    width:min(720px,calc(100vw - 24px));
    background:#fff;
    border:1px solid var(--hbp-border);
    border-radius:18px;
    box-shadow:0 18px 50px rgba(15,23,42,.16);
    padding:20px;
    font-family:inherit;
    color:var(--hbp-text);
    z-index:999999;
    direction:rtl;
    overflow:hidden;
    height:auto!important;
    min-height:0!important;
    max-height:none;
    align-self:flex-start;
}
.hbp-calendar *{box-sizing:border-box}
.hbp-calendar-popup{position:absolute;display:none}
.hbp-calendar-popup.hbp-open{display:block}
.hbp-calendar-inline{
    position:relative;
    width:100%;
    max-width:720px;
    min-width:0;
    margin:0 auto;
    box-shadow:none;
    border:1px solid var(--hbp-border);
    border-radius:18px;
    background:#fff;
    padding:20px;
}
.hbp-head{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 46px;
    align-items:center;
    gap:12px;
    margin-bottom:16px;
}
.hbp-head strong{
    text-align:center;
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    color:var(--hbp-text);
    white-space:nowrap;
}
.hbp-head button{
    width:46px;
    height:46px;
    min-height:46px;
    padding:0;
    border:1px solid transparent;
    background:#f8fafc;
    border-radius:12px;
    cursor:pointer;
    color:#334155;
    font:inherit;
    font-size:28px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.hbp-head button:hover{background:var(--hbp-accent-soft);border-color:#fed7aa;color:var(--hbp-accent)}
.hbp-head button:active{transform:scale(.96)}
.hbp-head button:focus-visible,.hbp-day:focus-visible,.hbp-foot button:focus-visible{outline:3px solid rgba(244,102,43,.28);outline-offset:2px}
.hbp-weekdays,.hbp-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    column-gap:4px;
    row-gap:5px;
    width:100%;
    direction:rtl;
}
.hbp-weekdays{
    margin-bottom:8px;
    color:var(--hbp-muted);
    text-align:center;
    font-size:clamp(10px,1.25vw,13px);
    font-weight:650;
    border-bottom:1px solid #f1f5f9;
    padding-bottom:8px;
}
.hbp-weekdays span{
    min-width:0;
    min-height:30px;
    padding:4px 1px;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1.25;
    white-space:nowrap;
    word-break:normal;
    overflow:visible;
    text-align:center;
}
.hbp-day,.hbp-empty{
    width:46px;
    height:46px;
    min-width:46px;
    min-height:46px;
    justify-self:center;
    align-self:center;
    display:flex;
    align-items:center;
    justify-content:center;
}
.hbp-day{
    padding:0;
    border:1px solid transparent;
    border-radius:12px;
    background:transparent;
    cursor:pointer;
    color:var(--hbp-text);
    font-family:inherit;
    font-size:16px;
    font-weight:500;
    font-variant-numeric:tabular-nums;
    transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.hbp-day:hover:not(:disabled):not(.hbp-active){background:#f8fafc;border-color:#e2e8f0;transform:translateY(-1px)}
.hbp-day.hbp-active{
    background:var(--hbp-accent);
    border-color:var(--hbp-accent);
    color:#fff;
    font-weight:700;
    box-shadow:0 6px 16px rgba(244,102,43,.24);
}
.hbp-day:disabled{opacity:.28;cursor:not-allowed;background:transparent;transform:none;box-shadow:none}
.hbp-foot{
    display:flex;
    justify-content:flex-start;
    align-items:center;
    gap:10px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #f1f5f9;
}
.hbp-foot button{
    min-height:40px;
    padding:7px 16px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
    border-radius:10px;
    color:#334155;
    cursor:pointer;
    font:inherit;
    font-size:13px;
    font-weight:600;
    transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.hbp-foot button:hover{background:var(--hbp-accent-soft);border-color:#fed7aa;color:var(--hbp-accent)}
.hbp-shake{animation:hbp-shake .25s linear}
@keyframes hbp-shake{25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-2px)}}

@supports (color:color-mix(in srgb,#000 10%,#fff)){
    .hbp-calendar{--hbp-accent-soft:color-mix(in srgb,var(--hbp-accent) 10%,#fff)}
    .hbp-head button:hover,.hbp-foot button:hover{border-color:color-mix(in srgb,var(--hbp-accent) 28%,#fff)}
    .hbp-head button:focus-visible,.hbp-day:focus-visible,.hbp-foot button:focus-visible{outline-color:color-mix(in srgb,var(--hbp-accent) 30%,transparent)}
    .hbp-day.hbp-active{box-shadow:0 6px 16px color-mix(in srgb,var(--hbp-accent) 28%,transparent)}
}
@media(max-width:640px){
    .hbp-calendar{width:min(100%,calc(100vw - 12px));padding:12px;border-radius:14px}
    .hbp-calendar-inline{padding:12px;border-radius:14px}
    .hbp-head{grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;margin-bottom:12px}
    .hbp-head button{width:40px;height:40px;min-height:40px;border-radius:10px;font-size:24px}
    .hbp-head strong{font-size:17px}
    .hbp-weekdays,.hbp-grid{column-gap:1px;row-gap:3px}
    .hbp-weekdays{font-size:clamp(8.5px,2.5vw,11px);letter-spacing:-.2px;padding-bottom:6px;margin-bottom:5px}
    .hbp-weekdays span{padding:3px 0;white-space:nowrap;transform:scaleX(.96);transform-origin:center}
    .hbp-day,.hbp-empty{width:38px;height:38px;min-width:38px;min-height:38px}
    .hbp-day{font-size:14px;border-radius:10px}
    .hbp-foot{margin-top:12px;padding-top:10px}
    .hbp-foot button{min-height:38px;padding:6px 13px}
}
@media(max-width:390px){
    .hbp-calendar{padding:9px}
    .hbp-calendar-inline{padding:9px}
    .hbp-weekdays{font-size:8.5px}
    .hbp-weekdays span{transform:scaleX(.88)}
    .hbp-day,.hbp-empty{width:34px;height:34px;min-width:34px;min-height:34px}
    .hbp-day{font-size:13px;border-radius:9px}
}
.hbp-inline-host{display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;align-self:flex-start!important}
/* The Bookly Svelte Calendar stays mounted and authoritative. Only its visual children are hidden; the Jalali host is rendered in the same component shell. */
.hbp-bookly-shell{visibility:visible!important;opacity:1!important;pointer-events:auto!important;width:100%!important;max-width:720px!important;height:auto!important;min-height:0!important;max-height:none!important;margin-inline:auto!important;align-self:flex-start!important}
.hbp-bookly-shell > :not(.hbp-inline-host){display:none!important}
.bookly-js-datepicker-calendar .hbp-bookly-shell,.bookly-js-datepicker-calendar.hbp-bookly-shell{background:#fff!important}
.bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{width:100%;min-width:0;max-width:720px}
body.rtl .hbp-calendar,.bookly-css-root .hbp-calendar{direction:rtl}
.hbp-calendar.hbp-busy{opacity:.72;pointer-events:none}
.hbp-modern-date-display{direction:rtl!important;text-align:right!important;unicode-bidi:plaintext}

/* Bookly admin: legacy jQuery daterangepicker */
.hbp-admin-date-original{position:absolute!important;opacity:0!important;pointer-events:none!important;z-index:-1!important;width:1px!important;height:1px!important;padding:0!important;border:0!important}
.hbp-admin-date-proxy{direction:rtl!important;text-align:right!important;cursor:pointer!important}
.hbp-dt-range-label{direction:rtl;unicode-bidi:plaintext}
.hbp-dashboard-popup-main{display:flex;min-height:500px}.hbp-dashboard-presets{width:220px;flex:0 0 220px;padding:14px 0;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:stretch}
.hbp-dashboard-preset{border:0;background:transparent;text-align:right;padding:11px 22px;font:inherit;font-size:15px;cursor:pointer;color:#0f172a}.hbp-dashboard-preset:hover,.hbp-dashboard-preset.hbp-active{background:#f1f5f9}.hbp-dashboard-preset.hbp-active{font-weight:600;color:#047857}
.hbp-dashboard-calendars{flex:1;padding:18px 24px 10px;min-width:0}.hbp-dashboard-months{display:grid;grid-template-columns:1fr 1fr;gap:28px}.hbp-dashboard-month-block{min-width:0}
.hbp-dashboard-month-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-bottom:14px}.hbp-dashboard-selects{display:flex;gap:8px;justify-content:center}.hbp-dashboard-month,.hbp-dashboard-year{height:40px;min-width:116px;border:1px solid #dbe3eb;border-radius:8px;background:#fff;color:inherit;padding:0 10px;font:inherit;text-align:center}.hbp-dashboard-year{min-width:96px}
.hbp-dashboard-nav{width:38px;height:38px;border:0;border-radius:8px;background:transparent;font-size:30px;line-height:1;cursor:pointer;color:#0f172a}.hbp-dashboard-nav:hover{background:#f1f5f9}
.hbp-dashboard-weekdays,.hbp-dashboard-days{display:grid;grid-template-columns:repeat(7,minmax(36px,1fr));gap:2px;text-align:center}.hbp-dashboard-weekdays{margin-bottom:6px;color:#64748b;font-size:14px;font-weight:600}.hbp-dashboard-weekdays span{padding:7px 0}
.hbp-dashboard-day{height:44px;border:0;background:transparent;color:#0f172a;font:inherit;font-size:16px;cursor:pointer;border-radius:0;position:relative}.hbp-dashboard-day:hover{background:#eef2f7;border-radius:7px}.hbp-dashboard-day.hbp-off{color:#94a3b8}.hbp-dashboard-day.hbp-in-range{background:#e2f2ec}.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{background:#059669;color:#fff;border-radius:7px}.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end){box-shadow:inset 0 0 0 1px #059669;border-radius:7px}
.hbp-dashboard-today{display:block;margin:16px 0 0 auto;border:0;background:transparent;color:#64748b;font:inherit;cursor:pointer;padding:6px 0}.hbp-dashboard-today:hover{color:#0f172a}
.hbp-dashboard-actions{display:flex;justify-content:flex-start;gap:10px;padding:14px 18px;border-top:1px solid #e2e8f0}.hbp-dashboard-actions button{height:42px;padding:0 18px;border-radius:9px;font:inherit;cursor:pointer}.hbp-dashboard-cancel{background:#fff;border:1px solid #dbe3eb;color:#0f172a}.hbp-dashboard-apply{background:#059669;border:1px solid #059669;color:#fff}
@media(max-width:900px){.hbp-dashboard-popup-main{flex-direction:column}.hbp-dashboard-presets{width:auto;flex:auto;border-left:0;border-bottom:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(3,1fr)}.hbp-dashboard-months{grid-template-columns:1fr}.hbp-dashboard-month-block:nth-child(2){display:none}.hbp-dashboard-calendars{padding:14px}.hbp-dashboard-preset{padding:9px 12px}}

/* ==========================================================================\n   HBP 1.3.4 — unified professional Persian calendar skin\n   ========================================================================== */
:root{
    --hbp-ui-accent:var(--bookly-main-color,#f4662b);
    --hbp-ui-accent-weak:#fff3ec;
    --hbp-ui-text:#172033;
    --hbp-ui-muted:#66758a;
    --hbp-ui-border:#dfe6ee;
    --hbp-ui-border-soft:#eef2f6;
    --hbp-ui-surface:#fff;
    --hbp-ui-surface-2:#f8fafc;
    --hbp-ui-shadow:0 18px 55px rgba(15,23,42,.14);
}

/* Shared typography — complete weekday names never wrap or collide. */
.hbp-weekdays span,
.hbp-dashboard-weekdays span{
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    direction:rtl!important;
    unicode-bidi:plaintext!important;
    letter-spacing:-.25px!important;
}

/* ---------- Frontend / standalone Bookly calendar ---------- */
.hbp-calendar{
    --hbp-accent:var(--hbp-ui-accent);
    width:min(650px,calc(100vw - 28px))!important;
    padding:18px!important;
    border:1px solid var(--hbp-ui-border)!important;
    border-radius:18px!important;
    background:var(--hbp-ui-surface)!important;
    box-shadow:var(--hbp-ui-shadow)!important;
    color:var(--hbp-ui-text)!important;
}
.hbp-calendar-inline{
    width:100%!important;
    max-width:650px!important;
    min-width:560px!important;
    padding:18px!important;
    border:1px solid var(--hbp-ui-border)!important;
    border-radius:18px!important;
    background:#fff!important;
    box-shadow:0 8px 26px rgba(15,23,42,.07)!important;
}
.hbp-head{
    grid-template-columns:48px minmax(0,1fr) 48px!important;
    gap:14px!important;
    margin-bottom:12px!important;
    padding-bottom:12px!important;
    border-bottom:1px solid var(--hbp-ui-border-soft)!important;
}
.hbp-head strong{font-size:20px!important;font-weight:800!important;color:var(--hbp-ui-text)!important}
.hbp-head button{
    width:46px!important;height:46px!important;min-height:46px!important;
    border:1px solid var(--hbp-ui-border)!important;
    border-radius:12px!important;background:var(--hbp-ui-surface-2)!important;
    color:#334155!important;font-size:28px!important;
}
.hbp-head button:hover{background:var(--hbp-ui-accent-weak)!important;color:var(--hbp-ui-accent)!important;border-color:var(--hbp-ui-accent)!important}
.hbp-weekdays{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:0!important;
    margin:0 0 8px!important;
    padding:0 0 9px!important;
    border-bottom:1px solid var(--hbp-ui-border-soft)!important;
    color:var(--hbp-ui-muted)!important;
    font-size:11.5px!important;
    font-weight:700!important;
}
.hbp-weekdays span{min-width:0!important;min-height:34px!important;padding:7px 1px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.hbp-grid{gap:4px!important;grid-template-columns:repeat(7,minmax(0,1fr))!important}
.hbp-day,.hbp-empty{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
.hbp-day{border-radius:11px!important;font-size:15px!important;font-weight:600!important;color:var(--hbp-ui-text)!important}
.hbp-day:hover:not(:disabled):not(.hbp-active){background:var(--hbp-ui-surface-2)!important;border-color:var(--hbp-ui-border)!important}
.hbp-day.hbp-active{background:var(--hbp-ui-accent)!important;border-color:var(--hbp-ui-accent)!important;color:#fff!important;box-shadow:0 7px 18px color-mix(in srgb,var(--hbp-ui-accent) 26%,transparent)!important}
.hbp-foot{margin-top:12px!important;padding-top:12px!important;border-top:1px solid var(--hbp-ui-border-soft)!important}
.hbp-foot button{min-height:40px!important;border:1px solid var(--hbp-ui-border)!important;border-radius:10px!important;background:#fff!important;color:#334155!important;font-weight:700!important}
.hbp-foot button:hover{background:var(--hbp-ui-accent-weak)!important;border-color:var(--hbp-ui-accent)!important;color:var(--hbp-ui-accent)!important}
.hbp-inline-host,.hbp-bookly-shell{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.hbp-bookly-shell{max-width:650px!important}
.bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{max-width:650px!important;min-width:560px!important}
.hbp-dashboard-popup-main{min-height:0!important;background:#fff!important}
.hbp-dashboard-presets{width:230px!important;flex:0 0 230px!important;padding:12px!important;border-left:1px solid var(--hbp-ui-border-soft)!important;gap:4px!important}
.hbp-dashboard-preset{padding:11px 14px!important;border-radius:9px!important;font-size:14px!important;font-weight:550!important;color:var(--hbp-ui-text)!important}
.hbp-dashboard-preset:hover{background:var(--hbp-ui-surface-2)!important}.hbp-dashboard-preset.hbp-active{background:var(--hbp-ui-accent-weak)!important;color:var(--hbp-ui-accent)!important;font-weight:750!important}
.hbp-dashboard-calendars{padding:20px 24px 16px!important}
.hbp-dashboard-months{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:30px!important}
.hbp-dashboard-month-block{min-width:400px!important}
.hbp-dashboard-month-head{grid-template-columns:40px 1fr 40px!important;gap:8px!important;margin-bottom:12px!important}
.hbp-dashboard-selects{gap:8px!important}
.hbp-dashboard-month,.hbp-dashboard-year{height:42px!important;min-width:128px!important;border:1px solid var(--hbp-ui-border)!important;border-radius:10px!important;background:#fff!important;font-size:14px!important;font-weight:650!important}.hbp-dashboard-year{min-width:98px!important}
.hbp-dashboard-nav{width:40px!important;height:40px!important;border:1px solid var(--hbp-ui-border)!important;border-radius:10px!important;background:var(--hbp-ui-surface-2)!important;font-size:26px!important;color:#334155!important}.hbp-dashboard-nav:hover{background:var(--hbp-ui-accent-weak)!important;border-color:var(--hbp-ui-accent)!important;color:var(--hbp-ui-accent)!important}
.hbp-dashboard-weekdays,.hbp-dashboard-days{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important}
.hbp-dashboard-weekdays{font-size:10.5px!important;font-weight:700!important;color:var(--hbp-ui-muted)!important;margin-bottom:7px!important;padding-bottom:7px!important;border-bottom:1px solid var(--hbp-ui-border-soft)!important}
.hbp-dashboard-weekdays span{min-height:30px!important;padding:6px 1px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.hbp-dashboard-day{height:42px!important;border-radius:9px!important;font-size:14px!important;font-weight:600!important}.hbp-dashboard-day:hover{background:var(--hbp-ui-surface-2)!important}.hbp-dashboard-day.hbp-in-range{background:var(--hbp-ui-accent-weak)!important}.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{background:var(--hbp-ui-accent)!important;color:#fff!important}.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end){box-shadow:inset 0 0 0 1.5px var(--hbp-ui-accent)!important}
.hbp-dashboard-actions{padding:13px 18px!important;border-top:1px solid var(--hbp-ui-border-soft)!important;background:#fff!important}.hbp-dashboard-actions button{height:42px!important;border-radius:10px!important;font-weight:700!important}.hbp-dashboard-apply{background:var(--hbp-ui-accent)!important;border-color:var(--hbp-ui-accent)!important}.hbp-dashboard-cancel{border-color:var(--hbp-ui-border)!important}

/* Calendar page week/day header output is allowed to show complete Persian weekday names. */
.bookly-js-calendar .fc-col-header-cell-cushion,
.bookly-js-calendar .fc-list-day-text,
.bookly-js-calendar .fc-list-day-side-text{white-space:nowrap!important;direction:rtl!important;unicode-bidi:plaintext!important}

/* Responsive: keep full weekday names, switch dual-month pickers to one month before collision. */
@media(max-width:1100px){
    .hbp-dashboard-popup-main{flex-direction:column!important}
    .hbp-dashboard-presets{width:auto!important;flex:auto!important;border-left:0!important;border-bottom:1px solid var(--hbp-ui-border-soft)!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .hbp-dashboard-months{grid-template-columns:1fr!important}
    .hbp-dashboard-month-block{min-width:0!important;width:100%!important}
    .hbp-dashboard-month-block:nth-child(2){display:none!important}
    .hbp-dashboard-weekdays{font-size:11px!important}
}
@media(max-width:700px){
    .hbp-calendar,.hbp-calendar-inline{width:min(100%,calc(100vw - 12px))!important;min-width:0!important;padding:12px!important;border-radius:14px!important}
    .hbp-bookly-shell{max-width:100%!important}.bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{min-width:0!important;max-width:100%!important}
    .hbp-head{grid-template-columns:40px minmax(0,1fr) 40px!important;gap:8px!important}.hbp-head button{width:40px!important;height:40px!important;min-height:40px!important}.hbp-head strong{font-size:17px!important}
    .hbp-weekdays{font-size:clamp(8px,2.15vw,10.5px)!important;letter-spacing:-.45px!important}.hbp-weekdays span{padding-inline:0!important}
    .hbp-day,.hbp-empty{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.hbp-day{font-size:13.5px!important}
    .hbp-dashboard-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important}.hbp-dashboard-calendars{padding:12px!important}.hbp-dashboard-weekdays{font-size:9.5px!important}.hbp-dashboard-day{height:38px!important;font-size:13px!important}
}

/* ==========================================================================
   HBP 1.3.5 — compact frontend controls + refined Dashboard range picker
   ========================================================================== */

/* Frontend: compact, balanced, with manual Jalali month/year selection. */
.hbp-calendar{
    width:min(520px,calc(100vw - 24px))!important;
    padding:14px!important;
    border-radius:16px!important;
}
.hbp-calendar-inline{
    width:100%!important;
    max-width:520px!important;
    min-width:480px!important;
    padding:14px!important;
    border-radius:16px!important;
}
.hbp-bookly-shell{max-width:520px!important}
.bookly-js-datepicker-calendar .hbp-calendar-inline,
.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{
    max-width:520px!important;
    min-width:480px!important;
}
.hbp-head{
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    gap:8px!important;
    margin-bottom:10px!important;
    padding-bottom:10px!important;
}
.hbp-head button{
    width:40px!important;
    height:40px!important;
    min-height:40px!important;
    border-radius:10px!important;
    font-size:24px!important;
}
.hbp-caption-selects{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    gap:7px!important;
    min-width:0!important;
}
.hbp-month-select,.hbp-year-select{
    height:40px!important;
    border:1px solid var(--hbp-ui-border)!important;
    border-radius:10px!important;
    background:#fff!important;
    color:var(--hbp-ui-text)!important;
    font:inherit!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1!important;
    text-align:center!important;
    outline:none!important;
    padding:0 10px!important;
    cursor:pointer!important;
}
.hbp-month-select{min-width:122px!important}
.hbp-year-select{min-width:88px!important}
.hbp-month-select:focus,.hbp-year-select:focus{
    border-color:var(--hbp-ui-accent)!important;
    box-shadow:0 0 0 3px color-mix(in srgb,var(--hbp-ui-accent) 12%,transparent)!important;
}
.hbp-weekdays{
    gap:2px!important;
    margin-bottom:6px!important;
    padding-bottom:7px!important;
    font-size:10.5px!important;
}
.hbp-weekdays span{
    min-height:30px!important;
    padding:5px 0!important;
    white-space:nowrap!important;
    letter-spacing:-.35px!important;
}
.hbp-grid{
    gap:3px!important;
    justify-items:center!important;
}
.hbp-day,.hbp-empty{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
}
.hbp-day{
    border-radius:10px!important;
    font-size:14px!important;
}
.hbp-day.hbp-active{
    box-shadow:0 6px 14px color-mix(in srgb,var(--hbp-ui-accent) 22%,transparent)!important;
}
.hbp-foot{margin-top:9px!important;padding-top:9px!important}
.hbp-foot button{min-height:38px!important;padding:6px 12px!important;font-size:13px!important}
.hbp-dashboard-presets{
    width:190px!important;
    flex:0 0 190px!important;
    padding:10px!important;
}
.hbp-dashboard-preset{
    padding:9px 11px!important;
    font-size:13px!important;
    border-radius:8px!important;
}
.hbp-dashboard-calendars{padding:16px 18px 12px!important}
.hbp-dashboard-months{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
}
.hbp-dashboard-month-block{
    min-width:330px!important;
    width:100%!important;
}
.hbp-dashboard-month-head{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    gap:6px!important;
    margin-bottom:9px!important;
}
.hbp-dashboard-selects{gap:6px!important}
.hbp-dashboard-month,.hbp-dashboard-year{
    height:38px!important;
    min-width:112px!important;
    padding:0 8px!important;
    border-radius:9px!important;
    font-size:13px!important;
}
.hbp-dashboard-year{min-width:82px!important}
.hbp-dashboard-nav{
    position:relative!important;
    z-index:3!important;
    width:36px!important;
    height:36px!important;
    padding:0!important;
    border-radius:9px!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    font-size:25px!important;
}
.hbp-dashboard-weekdays,.hbp-dashboard-days{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:2px!important;
}
.hbp-dashboard-weekdays{
    margin-bottom:5px!important;
    padding-bottom:5px!important;
    font-size:9.6px!important;
    letter-spacing:-.4px!important;
}
.hbp-dashboard-weekdays span{
    min-height:26px!important;
    padding:4px 0!important;
    white-space:nowrap!important;
}
.hbp-dashboard-day{
    height:38px!important;
    min-height:38px!important;
    border-radius:9px!important;
    font-size:13.5px!important;
    font-weight:650!important;
}
.hbp-dashboard-day.hbp-in-range{
    background:color-mix(in srgb,var(--hbp-ui-accent) 11%,#fff)!important;
    border-radius:7px!important;
}
.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{
    background:var(--hbp-ui-accent)!important;
    color:#fff!important;
    box-shadow:0 5px 13px color-mix(in srgb,var(--hbp-ui-accent) 20%,transparent)!important;
    border-radius:10px!important;
}
/* Today is informative, not a second "selected" state. */
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end){
    box-shadow:none!important;
    color:var(--hbp-ui-accent)!important;
    font-weight:800!important;
    background:color-mix(in srgb,var(--hbp-ui-accent) 5%,#fff)!important;
}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end)::after{
    content:"";
    position:absolute;
    width:4px;height:4px;
    border-radius:50%;
    background:var(--hbp-ui-accent);
    bottom:4px;
    left:50%;
    transform:translateX(-50%);
}
.hbp-dashboard-today{margin-top:10px!important;font-size:13px!important}
.hbp-dashboard-actions{padding:10px 14px!important}
.hbp-dashboard-actions button{height:38px!important;padding:0 15px!important;font-size:13px!important}

@media(max-width:1050px){
    .hbp-dashboard-popup-main{flex-direction:column!important}
    .hbp-dashboard-presets{width:auto!important;flex:auto!important;border-left:0!important;border-bottom:1px solid var(--hbp-ui-border-soft)!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .hbp-dashboard-months{grid-template-columns:1fr!important}
    .hbp-dashboard-month-block{min-width:0!important;width:100%!important}
    .hbp-dashboard-month-block:nth-child(2){display:none!important}
}
@media(max-width:620px){
    .hbp-calendar,.hbp-calendar-inline{width:min(100%,calc(100vw - 10px))!important;min-width:0!important;max-width:100%!important;padding:10px!important}
    .bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{min-width:0!important;max-width:100%!important}
    .hbp-head{grid-template-columns:36px minmax(0,1fr) 36px!important;gap:5px!important}
    .hbp-head button{width:34px!important;height:36px!important;min-height:36px!important;font-size:21px!important}
    .hbp-caption-selects{gap:4px!important}
    .hbp-month-select,.hbp-year-select{height:36px!important;padding:0 6px!important;font-size:12px!important}
    .hbp-month-select{min-width:100px!important}.hbp-year-select{min-width:72px!important}
    .hbp-weekdays{font-size:clamp(7.7px,2vw,9.5px)!important;letter-spacing:-.55px!important;gap:0!important}
    .hbp-weekdays span{min-height:27px!important;padding-inline:0!important}
    .hbp-grid{gap:1px!important}
    .hbp-day,.hbp-empty{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}.hbp-day{font-size:12.5px!important}
    .hbp-dashboard-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .hbp-dashboard-calendars{padding:10px!important}
    .hbp-dashboard-weekdays{font-size:8.7px!important}
    .hbp-dashboard-day{height:35px!important;min-height:35px!important;font-size:12.5px!important}
}

/* ========================================================================== 
   HBP 1.3.6 — functional Bookly sync + compact real range selection
   ========================================================================== */
/* Frontend: compact enough for full weekday names, without excessive spacing. */
.hbp-calendar{width:min(500px,calc(100vw - 20px))!important;padding:12px!important}
.hbp-calendar-inline{max-width:500px!important;min-width:455px!important;padding:12px!important}
.hbp-bookly-shell{max-width:500px!important}
.bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{max-width:500px!important;min-width:455px!important}
.hbp-head{grid-template-columns:38px minmax(0,1fr) 38px!important;gap:6px!important;padding-bottom:8px!important;margin-bottom:8px!important}
.hbp-head button{width:36px!important;height:36px!important;min-height:36px!important;font-size:22px!important}
.hbp-caption-selects{gap:5px!important}.hbp-month-select,.hbp-year-select{height:36px!important;font-size:13px!important}.hbp-month-select{min-width:112px!important}.hbp-year-select{min-width:78px!important}
.hbp-weekdays{font-size:10px!important;gap:0!important;margin-bottom:4px!important;padding-bottom:5px!important}.hbp-weekdays span{min-height:26px!important;padding:3px 0!important;letter-spacing:-.42px!important}
.hbp-grid{gap:1px!important}.hbp-day,.hbp-empty{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.hbp-day{font-size:13.5px!important;border-radius:9px!important}
.hbp-foot{margin-top:7px!important;padding-top:7px!important}.hbp-foot button{min-height:35px!important;padding:5px 11px!important;font-size:12.5px!important}
.hbp-dashboard-popup-main{min-height:0!important}
.hbp-dashboard-presets{width:190px!important;flex:0 0 190px!important;padding:10px!important}
.hbp-dashboard-calendars{padding:12px 14px 10px!important}
.hbp-dashboard-months{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.hbp-dashboard-month-block{min-width:320px!important;width:100%!important}
.hbp-dashboard-month-head{grid-template-columns:34px minmax(0,1fr) 34px!important;gap:5px!important;margin-bottom:6px!important}
.hbp-dashboard-nav{width:32px!important;height:32px!important;font-size:22px!important;border-radius:8px!important}
.hbp-dashboard-month,.hbp-dashboard-year{height:34px!important;font-size:12.5px!important;min-width:105px!important}.hbp-dashboard-year{min-width:78px!important}
.hbp-dashboard-weekdays{font-size:9px!important;margin-bottom:3px!important;padding-bottom:4px!important;letter-spacing:-.48px!important}.hbp-dashboard-weekdays span{min-height:23px!important;padding:2px 0!important}
.hbp-dashboard-days{gap:0!important}
.hbp-dashboard-day{height:36px!important;min-height:36px!important;border-radius:0!important;font-size:13px!important;transition:background .12s ease,color .12s ease,box-shadow .12s ease!important}
.hbp-dashboard-day:hover{border-radius:7px!important}
.hbp-dashboard-day.hbp-in-range{background:color-mix(in srgb,var(--hbp-ui-accent) 12%,#fff)!important;border-radius:0!important}
.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{background:var(--hbp-ui-accent)!important;color:#fff!important;border-radius:8px!important;box-shadow:none!important;position:relative!important;z-index:2!important}
.hbp-dashboard-day.hbp-range-start:not(.hbp-range-end){border-start-start-radius:8px!important;border-end-start-radius:8px!important}
.hbp-dashboard-day.hbp-range-end:not(.hbp-range-start){border-start-end-radius:8px!important;border-end-end-radius:8px!important}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end){background:transparent!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hbp-ui-accent) 45%,transparent)!important;color:var(--hbp-ui-text)!important}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end)::after{display:none!important}
.hbp-dashboard-today{margin-top:6px!important;padding:4px 0!important;font-size:12px!important}
.hbp-dashboard-actions{padding:9px 12px!important}.hbp-dashboard-actions button{height:36px!important;padding:0 14px!important;font-size:12.5px!important}.hbp-dashboard-apply:disabled{opacity:.45!important;cursor:not-allowed!important}
@media(max-width:940px){.hbp-dashboard-popup-main{flex-direction:column!important}.hbp-dashboard-presets{width:auto!important;flex:auto!important;border-left:0!important;border-bottom:1px solid var(--hbp-ui-border-soft)!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.hbp-dashboard-months{grid-template-columns:1fr!important}.hbp-dashboard-month-block:nth-child(2){display:none!important}.hbp-dashboard-month-block{min-width:0!important}}
@media(max-width:560px){.hbp-calendar,.hbp-calendar-inline{min-width:0!important;max-width:100%!important;width:min(100%,calc(100vw - 8px))!important}.bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{min-width:0!important;max-width:100%!important}.hbp-weekdays{font-size:clamp(7.5px,2.1vw,9px)!important}.hbp-day,.hbp-empty{width:33px!important;height:33px!important;min-width:33px!important;min-height:33px!important}.hbp-dashboard-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* ========================================================================== 
   HBP 1.3.7 — functional frontend commit + polished compact Persian controls
   ========================================================================== */
:root{
    --hbp-137-accent:var(--bookly-main-color,#f4662b);
    --hbp-137-accent-soft:color-mix(in srgb,var(--hbp-137-accent) 12%,#fff);
    --hbp-137-accent-soft-2:color-mix(in srgb,var(--hbp-137-accent) 7%,#fff);
    --hbp-137-text:#172033;
    --hbp-137-muted:#6b778c;
    --hbp-137-border:#dce4ed;
    --hbp-137-border-soft:#edf1f5;
    --hbp-137-surface:#fff;
    --hbp-137-surface-2:#f8fafc;
}

/* Shared Select2-like native selects; actual Select2 is enhanced automatically when available. */
.hbp-select2-like,
.hbp-month-select,.hbp-year-select,
.hbp-dashboard-month,.hbp-dashboard-year{
    -webkit-appearance:none!important;
    appearance:none!important;
    background-color:#fff!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20'%3E%3Cpath fill='%23475569' d='M5.3 7.3a1 1 0 0 1 1.4 0L10 10.6l3.3-3.3a1 1 0 1 1 1.4 1.4l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E")!important;
    background-repeat:no-repeat!important;
    background-position:14px 50%!important;
    padding-left:38px!important;
    padding-right:13px!important;
    border:1px solid var(--hbp-137-border)!important;
    border-radius:10px!important;
    color:var(--hbp-137-text)!important;
    font-family:inherit!important;
    font-weight:700!important;
    text-align:right!important;
    direction:rtl!important;
    box-shadow:0 1px 2px rgba(15,23,42,.03)!important;
    outline:0!important;
    cursor:pointer!important;
}
.hbp-select2-like:hover,
.hbp-month-select:hover,.hbp-year-select:hover,
.hbp-dashboard-month:hover,.hbp-dashboard-year:hover{border-color:#b9c5d3!important;background-color:#fbfcfd!important}
.hbp-select2-like:focus,
.hbp-month-select:focus,.hbp-year-select:focus,
.hbp-dashboard-month:focus,.hbp-dashboard-year:focus{
    border-color:var(--hbp-137-accent)!important;
    box-shadow:0 0 0 3px color-mix(in srgb,var(--hbp-137-accent) 13%,transparent)!important;
}

/* Optional real Select2, when Bookly already provides it on the page. */
.hbp-calendar .select2-container{font-family:inherit!important;direction:rtl!important;min-width:0!important}
.hbp-calendar .select2-container .select2-selection--single{
    height:38px!important;border:1px solid var(--hbp-137-border)!important;border-radius:10px!important;background:#fff!important;display:flex!important;align-items:center!important;box-shadow:0 1px 2px rgba(15,23,42,.03)!important
}
.hbp-calendar .select2-container .select2-selection__rendered{line-height:36px!important;color:var(--hbp-137-text)!important;font-weight:700!important;padding:0 12px 0 30px!important;text-align:right!important;width:100%!important}
.hbp-calendar .select2-container .select2-selection__arrow{height:36px!important;left:8px!important;right:auto!important}
.hbp-calendar .select2-dropdown{border:1px solid var(--hbp-137-border)!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 12px 30px rgba(15,23,42,.15)!important;direction:rtl!important}
.hbp-calendar .select2-results__option{padding:8px 12px!important;text-align:right!important}
.hbp-calendar .select2-results__option--highlighted{background:var(--hbp-137-accent)!important;color:#fff!important}

/* ---------- Frontend ---------- */
.hbp-calendar,
.hbp-calendar-inline{
    width:min(485px,calc(100vw - 18px))!important;
    max-width:485px!important;
    min-width:430px!important;
    padding:12px!important;
    border:1px solid var(--hbp-137-border)!important;
    border-radius:16px!important;
    background:#fff!important;
    color:var(--hbp-137-text)!important;
    box-shadow:0 10px 32px rgba(15,23,42,.10)!important;
}
.hbp-bookly-shell{width:100%!important;max-width:485px!important;height:auto!important;min-height:0!important}
.bookly-js-datepicker-calendar .hbp-calendar-inline,
.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{width:100%!important;max-width:485px!important;min-width:430px!important}
.hbp-head{grid-template-columns:38px minmax(0,1fr) 38px!important;gap:7px!important;margin:0 0 8px!important;padding:0 0 9px!important;border-bottom:1px solid var(--hbp-137-border-soft)!important}
.hbp-head button{width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border:1px solid var(--hbp-137-border)!important;border-radius:10px!important;background:var(--hbp-137-surface-2)!important;color:#334155!important;font-size:23px!important;box-shadow:none!important}
.hbp-head button:hover{border-color:var(--hbp-137-accent)!important;background:var(--hbp-137-accent-soft-2)!important;color:var(--hbp-137-accent)!important}
.hbp-caption-selects{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(92px,.75fr)!important;gap:6px!important;width:100%!important;min-width:0!important}
.hbp-month-select,.hbp-year-select{width:100%!important;min-width:0!important;height:38px!important;font-size:13.5px!important}
.hbp-weekdays{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:0!important;margin:0 0 5px!important;padding:0 0 6px!important;border-bottom:1px solid var(--hbp-137-border-soft)!important;color:var(--hbp-137-muted)!important;font-size:10.2px!important;font-weight:800!important}
.hbp-weekdays span{display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;min-height:28px!important;padding:3px 0!important;white-space:nowrap!important;overflow:visible!important;letter-spacing:-.45px!important}
.hbp-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:2px!important;justify-items:center!important}
.hbp-day,.hbp-empty{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
.hbp-day{border:1px solid transparent!important;border-radius:9px!important;background:transparent!important;color:var(--hbp-137-text)!important;font-size:13.5px!important;font-weight:650!important;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease!important}
.hbp-day:hover:not(:disabled):not(.hbp-active){background:var(--hbp-137-surface-2)!important;border-color:var(--hbp-137-border)!important}
.hbp-day:active:not(:disabled){transform:scale(.96)!important}
.hbp-day.hbp-active{background:var(--hbp-137-accent)!important;color:#fff!important;border-color:var(--hbp-137-accent)!important;box-shadow:0 6px 15px color-mix(in srgb,var(--hbp-137-accent) 20%,transparent)!important}
.hbp-day:disabled{color:#a8b0bc!important;opacity:.58!important;background:transparent!important}
.hbp-foot{margin-top:8px!important;padding-top:8px!important;border-top:1px solid var(--hbp-137-border-soft)!important}
.hbp-foot button{height:36px!important;min-height:36px!important;padding:0 13px!important;border:1px solid var(--hbp-137-border)!important;border-radius:9px!important;background:#fff!important;color:#334155!important;font-size:12.5px!important;font-weight:700!important}
.hbp-foot button:hover{border-color:var(--hbp-137-accent)!important;color:var(--hbp-137-accent)!important;background:var(--hbp-137-accent-soft-2)!important}
.hbp-dashboard-popup-main{min-height:0!important}
.hbp-dashboard-presets{width:185px!important;flex:0 0 185px!important;padding:10px!important;border-left:1px solid var(--hbp-137-border-soft)!important;gap:3px!important}
.hbp-dashboard-preset{padding:9px 11px!important;border-radius:8px!important;font-size:13px!important;font-weight:650!important;color:var(--hbp-137-text)!important}
.hbp-dashboard-preset:hover{background:var(--hbp-137-surface-2)!important}.hbp-dashboard-preset.hbp-active{background:var(--hbp-137-accent-soft)!important;color:var(--hbp-137-accent)!important;font-weight:800!important}
.hbp-dashboard-calendars{padding:12px 14px 10px!important}
.hbp-dashboard-months{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.hbp-dashboard-month-block{min-width:320px!important;width:100%!important}
.hbp-dashboard-month-head{grid-template-columns:34px minmax(0,1fr) 34px!important;gap:6px!important;margin-bottom:7px!important}
.hbp-dashboard-selects{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(82px,.75fr)!important;gap:6px!important;width:100%!important}
.hbp-dashboard-month,.hbp-dashboard-year{width:100%!important;min-width:0!important;height:36px!important;font-size:12.5px!important}
.hbp-dashboard-nav{position:relative!important;z-index:3!important;width:32px!important;height:32px!important;padding:0!important;border:1px solid var(--hbp-137-border)!important;border-radius:8px!important;background:var(--hbp-137-surface-2)!important;color:#334155!important;font-size:22px!important;line-height:1!important;cursor:pointer!important;pointer-events:auto!important}
.hbp-dashboard-nav:hover{border-color:var(--hbp-137-accent)!important;background:var(--hbp-137-accent-soft-2)!important;color:var(--hbp-137-accent)!important}
.hbp-dashboard-weekdays,.hbp-dashboard-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:0!important;text-align:center!important}
.hbp-dashboard-weekdays{margin-bottom:4px!important;padding-bottom:5px!important;border-bottom:1px solid var(--hbp-137-border-soft)!important;color:var(--hbp-137-muted)!important;font-size:9.2px!important;font-weight:800!important;letter-spacing:-.45px!important}
.hbp-dashboard-weekdays span{display:flex!important;align-items:center!important;justify-content:center!important;min-height:25px!important;padding:2px 0!important;white-space:nowrap!important;overflow:visible!important}
.hbp-dashboard-day{height:37px!important;min-height:37px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--hbp-137-text)!important;font-size:13px!important;font-weight:650!important;transition:background .1s ease,color .1s ease!important}
.hbp-dashboard-day:hover{background:var(--hbp-137-surface-2)!important;border-radius:7px!important}
.hbp-dashboard-day.hbp-off{color:#a0adbd!important;opacity:.82!important}
/* Every middle day of a selected range has both a visible strip and accent-colored number. */
.hbp-dashboard-day.hbp-in-range{background:var(--hbp-137-accent-soft)!important;color:var(--hbp-137-accent)!important;font-weight:800!important;border-radius:0!important;opacity:1!important}
.hbp-dashboard-day.hbp-off.hbp-in-range{color:color-mix(in srgb,var(--hbp-137-accent) 72%,#64748b)!important;opacity:1!important}
.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{position:relative!important;z-index:2!important;background:var(--hbp-137-accent)!important;color:#fff!important;font-weight:850!important;border-radius:9px!important;box-shadow:0 5px 13px color-mix(in srgb,var(--hbp-137-accent) 18%,transparent)!important;opacity:1!important}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end):not(.hbp-in-range){background:transparent!important;color:var(--hbp-137-text)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hbp-137-accent) 50%,transparent)!important;border-radius:7px!important}
.hbp-dashboard-day.hbp-today.hbp-in-range{box-shadow:none!important}
.hbp-dashboard-today{margin-top:7px!important;padding:4px 0!important;font-size:12px!important;color:var(--hbp-137-muted)!important}
.hbp-dashboard-actions{padding:9px 12px!important;border-top:1px solid var(--hbp-137-border-soft)!important}
.hbp-dashboard-actions button{height:36px!important;padding:0 14px!important;border-radius:9px!important;font-size:12.5px!important;font-weight:750!important}.hbp-dashboard-apply{background:var(--hbp-137-accent)!important;border-color:var(--hbp-137-accent)!important;color:#fff!important}.hbp-dashboard-cancel{background:#fff!important;border-color:var(--hbp-137-border)!important;color:var(--hbp-137-text)!important}

@media(max-width:940px){
    .hbp-dashboard-popup-main{flex-direction:column!important}
    .hbp-dashboard-presets{width:auto!important;flex:auto!important;border-left:0!important;border-bottom:1px solid var(--hbp-137-border-soft)!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .hbp-dashboard-months{grid-template-columns:1fr!important}
    .hbp-dashboard-month-block{min-width:0!important}
    .hbp-dashboard-month-block:nth-child(2){display:none!important}
}
@media(max-width:560px){
    .hbp-calendar,.hbp-calendar-inline{width:min(100%,calc(100vw - 8px))!important;min-width:0!important;max-width:100%!important;padding:9px!important}
    .bookly-js-datepicker-calendar .hbp-calendar-inline,.bookly-js-datepicker-calendar.hbp-bookly-shell .hbp-calendar-inline{min-width:0!important;max-width:100%!important}
    .hbp-head{grid-template-columns:34px minmax(0,1fr) 34px!important;gap:4px!important}
    .hbp-head button{width:32px!important;height:34px!important;min-height:34px!important;font-size:20px!important}
    .hbp-caption-selects{gap:4px!important;grid-template-columns:minmax(0,1.35fr) minmax(74px,.75fr)!important}
    .hbp-month-select,.hbp-year-select{height:34px!important;font-size:11.8px!important;padding-right:8px!important;padding-left:30px!important;background-position:9px 50%!important}
    .hbp-weekdays{font-size:clamp(7.5px,2.05vw,9.2px)!important;letter-spacing:-.55px!important}
    .hbp-day,.hbp-empty{width:33px!important;height:33px!important;min-width:33px!important;min-height:33px!important}.hbp-day{font-size:12.2px!important}
    .hbp-dashboard-presets{grid-template-columns:repeat(2,minmax(0,1fr))!important}.hbp-dashboard-calendars{padding:9px!important}.hbp-dashboard-weekdays{font-size:8.5px!important}.hbp-dashboard-day{height:35px!important;min-height:35px!important;font-size:12px!important}
}

/* ========================================================================== 
   HBP 1.3.8 — real Bookly Select2 + stable range geometry
   ========================================================================== */
/* Native selects are only a fallback. Once BooklySelect2 initializes they are hidden. */
.hbp-calendar .booklySelect2-container,
.hbp-calendar .select2-container{
    width:100%!important;min-width:0!important;display:block!important;font-family:inherit!important;direction:rtl!important
}
.hbp-calendar .booklySelect2-container .booklySelect2-selection--single,
.hbp-calendar .select2-container .select2-selection--single{
    height:38px!important;min-height:38px!important;border:1px solid var(--hbp-137-border)!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important;display:flex!important;align-items:center!important;position:relative!important
}
.hbp-calendar .booklySelect2-selection__rendered,
.hbp-calendar .select2-selection__rendered{
    width:100%!important;line-height:36px!important;padding:0 11px 0 30px!important;text-align:right!important;color:var(--hbp-137-text)!important;font-size:13px!important;font-weight:700!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
.hbp-calendar .booklySelect2-selection__arrow,
.hbp-calendar .select2-selection__arrow{
    position:absolute!important;left:8px!important;right:auto!important;top:50%!important;transform:translateY(-50%)!important;width:18px!important;height:18px!important
}
.hbp-calendar .booklySelect2-dropdown,
.hbp-calendar .select2-dropdown{
    border:1px solid var(--hbp-137-border)!important;border-radius:10px!important;background:#fff!important;box-shadow:0 12px 28px rgba(15,23,42,.16)!important;overflow:hidden!important;font-family:inherit!important;direction:rtl!important;z-index:1000005!important
}
.hbp-calendar .booklySelect2-results__option,
.hbp-calendar .select2-results__option{
    min-height:34px!important;padding:7px 12px!important;font-size:13px!important;line-height:20px!important;text-align:right!important;color:var(--hbp-137-text)!important;background:#fff!important
}
.hbp-calendar .booklySelect2-results__option--highlighted[aria-selected],
.hbp-calendar .select2-results__option--highlighted[aria-selected]{
    background:var(--hbp-137-accent)!important;color:#fff!important
}
.hbp-calendar .booklySelect2-results__option[aria-selected=true],
.hbp-calendar .select2-results__option[aria-selected=true]{font-weight:800!important}
.hbp-calendar .booklySelect2-search__field,
.hbp-calendar .select2-search__field{
    direction:rtl!important;text-align:right!important;border:1px solid var(--hbp-137-border)!important;border-radius:7px!important;outline:none!important;padding:6px 8px!important;font-family:inherit!important
}

/* Arrows are SVGs so their visual center does not depend on font glyph metrics. */
.hbp-head>button,.hbp-dashboard-nav{
    padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:0!important
}
.hbp-head>button svg,.hbp-dashboard-nav svg{width:19px!important;height:19px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:2.4!important;stroke-linecap:round!important;stroke-linejoin:round!important;margin:auto!important}

/* Dashboard range cells: fixed geometry and identical typography in every state. */
.hbp-dashboard-days{gap:0!important;align-items:stretch!important}
.hbp-dashboard-day{
    box-sizing:border-box!important;width:100%!important;max-width:none!important;height:38px!important;min-height:38px!important;margin:0!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    font-family:inherit!important;font-size:13.5px!important;font-weight:650!important;line-height:1!important;
    color:var(--hbp-137-text)!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:1!important
}
.hbp-dashboard-day.hbp-off{color:#9aa8ba!important;opacity:1!important;font-size:13.5px!important;font-weight:650!important}
.hbp-dashboard-day.hbp-in-range{
    background:var(--hbp-137-accent-soft)!important;color:var(--hbp-137-text)!important;
    font-family:inherit!important;font-size:13.5px!important;font-weight:650!important;line-height:1!important;border-radius:0!important;box-shadow:none!important
}
.hbp-dashboard-day.hbp-off.hbp-in-range{color:#748399!important;font-size:13.5px!important;font-weight:650!important}
.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{
    background:var(--hbp-137-accent)!important;color:#fff!important;
    font-family:inherit!important;font-size:13.5px!important;font-weight:750!important;line-height:1!important;
    border-radius:9px!important;box-shadow:none!important
}
.hbp-dashboard-day.hbp-range-start.hbp-range-end{border-radius:9px!important}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end){font-size:13.5px!important;font-weight:650!important}

/* Keep the two month headers aligned after Select2 replaces the selects. */
.hbp-dashboard-selects,.hbp-caption-selects{align-items:center!important;min-width:0!important}
.hbp-dashboard-selects>.booklySelect2-container,.hbp-dashboard-selects>.select2-container,
.hbp-caption-selects>.booklySelect2-container,.hbp-caption-selects>.select2-container{flex:1 1 0!important;min-width:0!important}

/* ========================================================================== 
   HBP 1.3.9 — single Select2 control + invariant Persian typography
   ========================================================================== */
/* Bookly's own hidden-accessible rule is scoped to #bookly-tbs. Our frontend
   calendar is outside that wrapper, so provide the same accessibility hiding
   here. This is the key rule that prevents native + Select2 duplicate controls. */
.hbp-calendar .booklySelect2-hidden-accessible,
.hbp-calendar select.hbp-select-enhanced{
    border:0!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
    height:1px!important;
    width:1px!important;
    margin:-1px!important;
    overflow:hidden!important;
    padding:0!important;
    position:absolute!important;
    white-space:nowrap!important;
    background:none!important;
    box-shadow:none!important;
}

/* Minimal unscoped BooklySelect2 primitives, required on frontend because
   Bookly normally ships these styles under #bookly-tbs only. */
.hbp-calendar .booklySelect2-container{
    box-sizing:border-box!important;
    display:block!important;
    margin:0!important;
    position:relative!important;
    vertical-align:middle!important;
    width:100%!important;
    min-width:0!important;
    direction:rtl!important;
    font-family:inherit!important;
}
.hbp-calendar .booklySelect2-container .selection{display:block!important;width:100%!important}
.hbp-calendar .booklySelect2-dropdown{
    box-sizing:border-box!important;
    display:block!important;
    position:absolute!important;
    left:-100000px;
    width:100%!important;
    z-index:1000008!important;
}
.hbp-calendar .booklySelect2-container--open .booklySelect2-dropdown{left:0!important}
.hbp-calendar .booklySelect2-results{display:block!important}
.hbp-calendar .booklySelect2-results__options{list-style:none!important;margin:0!important;padding:4px!important;max-height:260px!important;overflow-y:auto!important}
.hbp-calendar .booklySelect2-search--dropdown{display:block!important;padding:6px!important}
.hbp-calendar .booklySelect2-search--dropdown.booklySelect2-search--hide{display:none!important}

/* One immutable typography for every date state. Selection changes only color,
   never font family, size, weight, spacing or numeral shaping. */
.hbp-day,
.hbp-day.hbp-active,
.hbp-dashboard-day,
.hbp-dashboard-day.hbp-off,
.hbp-dashboard-day.hbp-in-range,
.hbp-dashboard-day.hbp-off.hbp-in-range,
.hbp-dashboard-day.hbp-range-start,
.hbp-dashboard-day.hbp-range-end,
.hbp-dashboard-day.hbp-today{
    font-family:inherit!important;
    font-size:14px!important;
    font-weight:600!important;
    font-style:normal!important;
    font-stretch:normal!important;
    line-height:1!important;
    letter-spacing:0!important;
    font-variant:normal!important;
    font-synthesis:none!important;
    text-indent:0!important;
}
.hbp-day{font-size:14px!important;font-weight:600!important}
.hbp-day.hbp-active{font-size:14px!important;font-weight:600!important}

/* Month/year typography is identical before and after enhancement/selection. */
.hbp-month-select,.hbp-year-select,
.hbp-dashboard-month,.hbp-dashboard-year,
.hbp-calendar .booklySelect2-selection__rendered,
.hbp-calendar .booklySelect2-results__option{
    font-family:inherit!important;
    font-size:14px!important;
    font-weight:600!important;
    font-style:normal!important;
    line-height:1.45!important;
    letter-spacing:0!important;
    font-variant:normal!important;
    font-synthesis:none!important;
}
.hbp-calendar .booklySelect2-selection__rendered{
    line-height:36px!important;
    height:36px!important;
    display:block!important;
    padding:0 12px 0 32px!important;
    color:var(--hbp-137-text)!important;
    text-align:right!important;
}
.hbp-calendar .booklySelect2-results__option[aria-selected=true],
.hbp-calendar .booklySelect2-results__option--highlighted[aria-selected]{font-weight:600!important}

/* Range: professional individual chips rather than long broken bars. */
.hbp-dashboard-days{gap:2px!important}
.hbp-dashboard-day{
    width:calc(100% - 4px)!important;
    height:38px!important;
    min-height:38px!important;
    margin:2px!important;
    border-radius:8px!important;
    background:transparent!important;
}
.hbp-dashboard-day.hbp-in-range{
    background:var(--hbp-137-accent-soft)!important;
    color:var(--hbp-137-text)!important;
    border-radius:8px!important;
}
.hbp-dashboard-day.hbp-range-start,
.hbp-dashboard-day.hbp-range-end{
    background:var(--hbp-137-accent)!important;
    color:#fff!important;
    border-radius:9px!important;
    box-shadow:0 3px 10px color-mix(in srgb,var(--hbp-137-accent) 18%,transparent)!important;
}
.hbp-dashboard-day.hbp-today:not(.hbp-range-start):not(.hbp-range-end):not(.hbp-in-range){
    background:#fff!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hbp-137-accent) 48%,transparent)!important;
}

/* Navigation buttons: force geometric center independent of RTL/font rules. */
.hbp-head>button,.hbp-dashboard-nav{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    text-align:center!important;
}
.hbp-head>button svg,.hbp-dashboard-nav svg{
    display:block!important;
    position:static!important;
    width:18px!important;
    height:18px!important;
    margin:0!important;
    transform:none!important;
}

@media(max-width:560px){
    .hbp-day,.hbp-day.hbp-active,.hbp-dashboard-day,.hbp-dashboard-day.hbp-in-range,.hbp-dashboard-day.hbp-range-start,.hbp-dashboard-day.hbp-range-end{font-size:12.5px!important;font-weight:600!important}
    .hbp-month-select,.hbp-year-select,.hbp-dashboard-month,.hbp-dashboard-year,.hbp-calendar .booklySelect2-selection__rendered{font-size:12.5px!important;font-weight:600!important}
}

/* ==========================================================================
   HBP 1.3.10 — BooklySelect2 open/dropdown positioning fix
   ========================================================================== */
/* BooklySelect2 appends the open dropdown to dropdownParent (our calendar).
   It must be allowed to escape the calendar card. */
.hbp-calendar.hbp-has-bookly-select2,
.hbp-calendar.hbp-select-open{
    overflow:visible!important;
}
/* Only the selection containers inside the caption are relative/full-width. */
.hbp-caption-selects > .booklySelect2-container,
.hbp-dashboard-selects > .booklySelect2-container{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    z-index:21!important;
}
/* The separate dropdown container created by Select2 must stay absolutely
   positioned. JS supplies an !important width equal to the clicked control. */
.hbp-calendar > .booklySelect2-container--open{
    position:absolute!important;
    z-index:1000016!important;
    max-width:calc(100% - 16px)!important;
}
.hbp-calendar > .booklySelect2-container--open .booklySelect2-dropdown{
    left:0!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    z-index:1000017!important;
}
.hbp-calendar .booklySelect2-selection--single{
    cursor:pointer!important;
    pointer-events:auto!important;
}
/* Bookly places the holiday popover in this element. */
.bookly-js-holidays-nav{position:relative!important;overflow:visible!important;z-index:20}
.hbp-dt-range-label{
    direction:rtl!important;
    unicode-bidi:isolate!important;
    font-family:inherit!important;
    font-variant-numeric:tabular-nums!important;
}

/* ==========================================================================
   HBP 1.3.35 — Dashboard filter row alignment + active-range KPI label support
   Only the compact trigger/layout is styled here; calendar internals are untouched.
   ========================================================================== */
#bookly-dashboard-filters .hbp-dashboard-filter-row{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:.5rem!important;
}
/* Accessible standalone picker. No selectors target other plugins. */
.hbp-calendar { box-sizing:border-box; width:320px; max-width:calc(100vw - 16px); padding:12px; background:#fff; color:#172b4d; border:1px solid #cbd5e1; border-radius:8px; font:14px/1.7 Tahoma,sans-serif; }
.hbp-calendar-popup { position:absolute; z-index:1000020; box-shadow:0 8px 25px #0002; }
.hbp-caption { display:flex; gap:5px; margin-bottom:8px; }
.hbp-calendar select { min-width:0; padding:4px; max-width:110px; }
.hbp-calendar button { cursor:pointer; padding:6px; margin:0; border:0; border-radius:4px; background:#f1f5f9; color:#172b4d; font:inherit; box-shadow:none; }
.hbp-calendar button:hover,.hbp-calendar button[aria-pressed=true] { background:#0f766e; color:white; }
.hbp-calendar button:disabled { opacity:.4; cursor:not-allowed; }
.hbp-calendar button:focus-visible,.hbp-calendar select:focus-visible { outline:2px solid #0f766e; outline-offset:2px; }
.hbp-grid,.hbp-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; text-align:center; }
.hbp-weekdays { font-size:9px; margin-bottom:6px; }
.hbp-footer { display:flex; gap:6px; margin-top:9px; }
.hbp-calendar [role=status] { font-size:12px; color:#9f1239; }
.hbp-date-original,.hbp-admin-date-original { position:absolute!important; opacity:0!important; width:1px!important; height:1px!important; pointer-events:none!important; }
.hbp-inline-host { position:relative; z-index:1; }
.hbp-bookly-shell > :not(.hbp-inline-host) { display:none!important; }
.hbp-bookly-shell > .hbp-inline-host { display:block!important; }
.hbp-event-calendar .ec-other-month{color:inherit}
.hbp-event-calendar .hbp-outside-month{color:#94a3b8}
.hbp-event-calendar .hbp-current-month{color:#0f172a}

/* Persian EventCalendar: scope direction and alignment to this adapter only. */
.hbp-event-calendar{direction:rtl;text-align:right}
.hbp-event-calendar .ec-day-grid .ec-day-head{flex-direction:row}
/* EventCalendar marks Gregorian month boundaries; the adapter marks Jalali ones. */
.hbp-event-calendar .ec-day.ec-other-month .ec-day-head time{opacity:1}
.hbp-event-calendar .ec-event-time{direction:ltr;unicode-bidi:isolate;text-align:right}
.hbp-event-calendar .ec-title{direction:rtl;unicode-bidi:isolate}
.hbp-event-calendar .ec-toolbar{gap:12px;flex-wrap:wrap}
@media(max-width:782px){
    .hbp-event-calendar .ec-toolbar>div{max-width:100%;gap:6px}
    .hbp-event-calendar .ec-title{font-size:18px}
}

/* Modern appointment wizard: Bookly portals explicitly default to LTR. */
#bookly-portal-host.hbp-wizard-portal .hbp-booking-wizard-modal,
#bookly-portal-host.hbp-wizard-portal [data-bits-floating-content-wrapper],
#bookly-portal-host.hbp-wizard-portal [role="application"],
#bookly-portal-host.hbp-wizard-portal [role="option"]{direction:rtl!important;text-align:right!important}
.hbp-booking-wizard-modal h4{direction:rtl;unicode-bidi:isolate;text-align:right}
.hbp-booking-wizard-modal [data-wizard-start]{direction:rtl;unicode-bidi:isolate}
/* Hamzeh: native customer labels explicitly use text-left inside the RTL wizard. */
#bookly-portal-host .hbp-booking-wizard-modal .bookly\:text-left{text-align:right!important}

/* Hamzeh: scoped card/payment RTL, including previews in the card settings dialog. */
#bookly-portal-host .hbp-appointment-card,
#bookly-payment-details-dialog.hbp-payment-details {
    direction: rtl;
    text-align: right;
}
#bookly-portal-host .hbp-appointment-card .bookly\:text-left { text-align: right !important; }
#bookly-portal-host .hbp-appointment-card .bookly\:ml-auto { margin-left: 0 !important; margin-right: auto !important; }
#bookly-portal-host .hbp-appointment-card .bookly\:ml-4 { margin-left: 0 !important; margin-right: 1rem !important; }
#bookly-portal-host .hbp-appointment-card [data-block="when"] > p,
#bookly-portal-host .hbp-appointment-card [data-block="created"] > p { unicode-bidi: isolate; }
#bookly-portal-host .hbp-appointment-card .hbp-card-time,
#bookly-portal-host .hbp-appointment-card [data-block="customers"] p.bookly\:tabular-nums {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: right;
}
/* Hamzeh: shared Bookly switches use logical positioning in both page roots and portals.
   Physical translate-x pushes the checked thumb outside RTL tracks. */
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) [data-slot="switch"] { position: relative; }
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) [data-slot="switch"] > [data-slot="switch-thumb"] {
    position: absolute;
    top: 50%;
    inset-inline-start: 0;
    translate: none !important;
    transform: translateY(-50%);
    transition: inset-inline-start .15s ease;
}
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) [data-slot="switch"][aria-checked="true"] [data-slot="switch-thumb"] {
    inset-inline-start: calc(100% - 1rem);
}
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) [data-slot="switch"][aria-checked="false"] { background-color: #cbd5e1; }
#bookly-portal-host .hbp-appointment-card [data-slot="button-group"] { gap: 1px; }
#bookly-portal-host .hbp-appointment-card [data-slot="button-group"] > button { border-radius: 0; }
#bookly-portal-host .hbp-appointment-card [data-slot="button-group"] > button:first-child { border-radius: 0 .5rem .5rem 0; }
#bookly-portal-host .hbp-appointment-card [data-slot="button-group"] > button:last-child { border-radius: .5rem 0 0 .5rem; }
#bookly-payment-details-dialog.hbp-payment-details td { unicode-bidi: isolate; }

/* Hamzeh: mirror Bookly's fullscreen desktop rail and its reserved content space. */
@media(min-width:768px){
    body.rtl.bookly-fullscreen-active #bookly-page-header [data-bookly-fullscreen-sidebar="desktop"],
    body.rtl.bookly-fullscreen-active .bookly-fs-sidebar-placeholder{
        left:auto!important;right:0!important;border-right:0!important;border-left:1px solid #e5e7eb;
    }
    body.rtl.js.bookly-fullscreen-active:not(.bookly-setup-wizard) #wpbody-content{
        padding-left:20px!important;padding-right:260px!important;
    }
    body.rtl.js.bookly-fullscreen-active.bookly-fixed-width:not(.bookly-setup-wizard) #wpbody-content{
        padding-left:max(20px,(100% - 240px - 1180px) / 2)!important;
        padding-right:calc(240px + max(20px,(100% - 240px - 1180px) / 2))!important;
    }
}
/* Hamzeh: center column headings across modern and legacy Bookly tables. */
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) table thead th{
    text-align:center!important;
}
:is(#bookly-tbs, #bookly-portal-host, .bookly-css-root, .bookly-form) table thead th > div{
    justify-content:center;
}

/* ---------- Jalali mirror of Bookly's Svelte Calendar (bookly-calendar.js) ----------
   The Bookly panel stays mounted (hidden children) and only hosts the mirror, which
   carries Bookly's own panel classes. Neutralise the native panel box and its
   expanded/absolute state so the mirror is not drawn twice. */
.hbp-bookly-shell.bookly-panel-mark{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;position:relative!important;top:auto!important;left:auto!important;translate:none!important;transform:none!important;max-width:none!important;z-index:auto!important;width:100%!important}
.hbp-bookly-shell.bookly-panel-mark > :not(.hbp-inline-host){display:none!important}
.hbp-ncal{display:block;box-sizing:border-box}
.hbp-ncal-panel{margin-inline:auto}
.hbp-ncal-overlay{position:absolute;inset:0;width:100%;height:100%;background-color:rgba(255,255,255,.1);z-index:2;cursor:wait}
.hbp-ncal-day{font-variant-numeric:tabular-nums}
.hbp-ncal-status:empty{display:none}
.hbp-ncal-status{font-size:12px;color:#b45309;text-align:center;padding-top:4px}

/* ==========================================================================
   Hamzeh: admin calendars — one look for Bookly's three calendar kinds.
   The structure and behaviour stay Bookly's (RangeCalendar, jQuery
   daterangepicker, jCal twin); only colours, spacing and reading order
   follow Bookly's own admin design tokens (emerald primary, slate borders).
   ========================================================================== */
#bookly-tbs,.bookly-css-root,.daterangepicker.hbp-daterangepicker{
    --hbp-cal-primary:var(--bookly-color-primary,#059669);
    --hbp-cal-primary-weak:color-mix(in srgb,var(--hbp-cal-primary) 12%,#fff);
    --hbp-cal-text:#0f172a;
    --hbp-cal-muted:#64748b;
    --hbp-cal-faint:#cbd5e1;
    --hbp-cal-border:#e2e8f0;
    --hbp-cal-hover:#f1f5f9;
    --hbp-cal-weekend:#e11d48;
    --hbp-cal-radius:6px;
}

/* Bookly RangeCalendar: Friday in the weekend colour, unless selected, outside or disabled. */
.hbp-core-jalali [data-bits-day].hbp-friday:not([data-selected]):not([data-outside-month]):not([data-disabled]){color:var(--hbp-cal-weekend,#e11d48)}
.hbp-core-jalali [data-bits-day]{font-variant-numeric:tabular-nums}
/* Persian digits need a little more room than Bookly's 28px cells; the range uses the same light emerald as the other calendars. */
.hbp-core-jalali [data-range-calendar-root],.hbp-core-jalali [data-calendar-root]{--cell-size:2.125rem!important}
.hbp-core-jalali [data-range-calendar-root] td:has([data-range-middle]),.hbp-core-jalali [data-range-calendar-root] td:has([data-selected]){background-color:var(--hbp-cal-primary-weak)!important}
/* A neighbouring month's days repeat the range already shown in their own month: keep them faint. */
.hbp-core-jalali [data-range-calendar-root] td:has([data-outside-month]){background-color:transparent!important}
.hbp-core-jalali [data-bits-day][data-outside-month][data-selected]{background-color:transparent!important;color:var(--hbp-cal-faint)!important;font-weight:400}
.hbp-core-jalali [data-bits-day][data-range-middle]{background-color:transparent!important;color:var(--hbp-cal-text)!important}
.hbp-core-jalali thead th{font-weight:500}

/* jQuery daterangepicker: right-to-left reading order (Bookly forces ltr) and Bookly's palette. */
#bookly-tbs :not(.bookly\:datatable-filters)>.daterangepicker.hbp-daterangepicker,.daterangepicker.hbp-daterangepicker{direction:rtl;text-align:right;border:1px solid var(--hbp-cal-border);border-radius:10px;box-shadow:0 10px 30px -8px rgba(15,23,42,.18);font-family:inherit}
#bookly-tbs :not(.bookly\:datatable-filters)>.daterangepicker.hbp-daterangepicker .drp-calendar{float:right}
#bookly-tbs .daterangepicker.hbp-daterangepicker .drp-calendar{max-width:292px;padding:10px!important}
#bookly-tbs .daterangepicker.hbp-daterangepicker .drp-calendar.left .calendar-table,#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table{border:0;border-radius:0}
#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table table{border-collapse:separate;border-spacing:0 2px}
#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table td,#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table th{min-width:36px;width:36px;height:34px;line-height:34px;font-size:13px;border:0;border-radius:var(--hbp-cal-radius);color:var(--hbp-cal-text);font-variant-numeric:tabular-nums;text-align:center}
/* Bookly's ".rtl #bookly-tbs :not(i.fas,i.far){text-align:right}" has the same weight as its own centring of the cells and loads later. */
#bookly-tbs .daterangepicker.hbp-daterangepicker thead tr:last-child th{height:28px;line-height:28px;font-size:12px;font-weight:500;color:var(--hbp-cal-muted)}
#bookly-tbs .daterangepicker.hbp-daterangepicker th.month{font-size:14px;font-weight:600;white-space:nowrap}
#bookly-tbs .daterangepicker.hbp-daterangepicker th.prev.available,#bookly-tbs .daterangepicker.hbp-daterangepicker th.next.available{cursor:pointer}
#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table .prev span,#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table .next span{border-color:#334155;border-width:0 1.5px 1.5px 0;padding:3.5px}
/* Previous sits on the right in rtl and points right; next points left. */
#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table .prev span{transform:rotate(-45deg)}
#bookly-tbs .daterangepicker.hbp-daterangepicker .calendar-table .next span{transform:rotate(135deg)}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.available:hover,#bookly-tbs .daterangepicker.hbp-daterangepicker th.available:hover{background-color:var(--hbp-cal-hover);color:var(--hbp-cal-text)}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.weekend:not(.off):not(.active){color:var(--hbp-cal-weekend)}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.today:not(.active){box-shadow:inset 0 0 0 1px var(--hbp-cal-primary);font-weight:600}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.off,#bookly-tbs .daterangepicker.hbp-daterangepicker td.off.in-range{background-color:transparent;color:var(--hbp-cal-faint)}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.disabled{color:var(--hbp-cal-faint);text-decoration:none}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.in-range{background-color:var(--hbp-cal-primary-weak);color:var(--hbp-cal-text);border-radius:0}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.active,#bookly-tbs .daterangepicker.hbp-daterangepicker td.active:hover{background-color:var(--hbp-cal-primary);color:#fff;font-weight:600}
/* Days of the neighbouring month stay faint even when they fall on the range, as in the original. */
#bookly-tbs .daterangepicker.hbp-daterangepicker td.off.active,#bookly-tbs .daterangepicker.hbp-daterangepicker td.off.in-range,#bookly-tbs .daterangepicker.hbp-daterangepicker td.off.start-date,#bookly-tbs .daterangepicker.hbp-daterangepicker td.off.end-date{background-color:transparent;color:var(--hbp-cal-faint);font-weight:400}
/* In rtl the range starts on the right. */
#bookly-tbs .daterangepicker.hbp-daterangepicker td.start-date{border-radius:0 var(--hbp-cal-radius) var(--hbp-cal-radius) 0}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.end-date{border-radius:var(--hbp-cal-radius) 0 0 var(--hbp-cal-radius)}
#bookly-tbs .daterangepicker.hbp-daterangepicker td.start-date.end-date{border-radius:var(--hbp-cal-radius)}
#bookly-tbs .daterangepicker.hbp-daterangepicker select.monthselect,#bookly-tbs .daterangepicker.hbp-daterangepicker select.yearselect{height:32px;font-size:13px;color:var(--hbp-cal-text);direction:rtl;text-align:right;border:1px solid var(--hbp-cal-border);border-radius:var(--hbp-cal-radius);padding:0 .5rem 0 1.6rem;background-position:left .45rem center;background-size:8px 10px;cursor:pointer}
#bookly-tbs .daterangepicker.hbp-daterangepicker select.monthselect{width:57%;margin:0 0 0 3%}
#bookly-tbs .daterangepicker.hbp-daterangepicker select.yearselect{width:40%}
#bookly-tbs .daterangepicker.hbp-daterangepicker .drp-buttons{border-top:1px solid var(--hbp-cal-border);padding:10px 12px}
#bookly-tbs .daterangepicker.hbp-daterangepicker .drp-buttons .btn{border-radius:var(--hbp-cal-radius)}
#bookly-tbs .daterangepicker.hbp-daterangepicker .drp-selected{color:var(--hbp-cal-muted);font-size:12.5px}
#bookly-tbs .daterangepicker.hbp-daterangepicker.show-ranges.rtl .drp-calendar.right{border-right-color:var(--hbp-cal-border)}

/* jCal twin (holidays, staff days off): a card per month on a grid, rounded days, Bookly's palette. */
#bookly-tbs .jCal-wrap.hbp-jcal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}
@media (max-width:991.98px){#bookly-tbs .jCal-wrap.hbp-jcal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:575.98px){#bookly-tbs .jCal-wrap.hbp-jcal{grid-template-columns:minmax(0,1fr)}}
#bookly-tbs .hbp-jcal .jCalMo{float:none;width:auto;height:auto;margin:0;padding:12px 12px 10px;background:#fff;border:1px solid var(--hbp-cal-border);border-radius:10px}
#bookly-tbs .hbp-jcal .jCalMo::after{content:"";display:block;clear:both}
#bookly-tbs .hbp-jcal .jCal .monthName{padding:0 0 8px;text-align:center;font-size:15px;font-weight:600;color:var(--hbp-cal-text)}
#bookly-tbs .hbp-jcal .jCalMo .dow,#bookly-tbs .hbp-jcal .jCalMo .day,#bookly-tbs .hbp-jcal .jCalMo .pday{float:right;width:14.2857%;margin:0;border:0;text-align:center;line-height:34px;font-size:13px;font-variant-numeric:tabular-nums}
#bookly-tbs .hbp-jcal .jCalMo .dow{background:none;color:var(--hbp-cal-muted);font-weight:500;font-size:12px;line-height:28px}
/* A white ring keeps a small gap between the rounded days. */
#bookly-tbs .hbp-jcal .jCalMo .day,#bookly-tbs .hbp-jcal .jCalMo .pday{border-radius:8px;box-shadow:inset 0 0 0 2px #fff}
#bookly-tbs .hbp-jcal .jCalMo .pday{background:none;color:var(--hbp-cal-faint)}
#bookly-tbs .hbp-jcal .jCalMo .day{color:var(--hbp-cal-text);background:#fff;transition:background-color .12s}
#bookly-tbs .hbp-jcal .jCalMo .day.hbp-friday{color:var(--hbp-cal-weekend)}
#bookly-tbs .hbp-jcal .jCalMo .day:hover,#bookly-tbs .hbp-jcal .jCalMo .overDay{background:var(--hbp-cal-hover)}
#bookly-tbs .hbp-jcal .jCalMo .day:focus-visible{outline:2px solid var(--hbp-cal-primary);outline-offset:-2px}
#bookly-tbs .hbp-jcal .jCalMo .day.hbp-today{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3.5px var(--hbp-cal-primary);font-weight:600}
#bookly-tbs .hbp-jcal .jCalMo .holidayDay{background:#fef3c7;color:#92400e;font-weight:600}
#bookly-tbs .hbp-jcal .jCalMo .holidayDay.repeatDay{background:#ffe4e6;color:#be123c}
#bookly-tbs .hbp-jcal .jCalMo .exceptionDay{background:#fff;color:#be123c;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3px #fda4af;text-decoration:line-through;text-decoration-color:#fda4af}
#bookly-tbs .hbp-jcal .jCalMo .selectedDay,#bookly-tbs .hbp-jcal .jCalMo .selectedDay.repeatDay{background:var(--hbp-cal-primary);color:#fff;text-decoration:none}
/* Legend and year buttons. */
#bookly-tbs .hbp-jcal-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:14px 0 2px;font-size:12.5px;color:var(--hbp-cal-muted)}
#bookly-tbs .hbp-jcal-legend span{display:inline-flex;align-items:center;gap:6px}
#bookly-tbs .hbp-jcal-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;background:#fff;border:1px solid var(--hbp-cal-border)}
#bookly-tbs .hbp-jcal-legend i.holidayDay{background:#fef3c7;border-color:#fcd34d}
#bookly-tbs .hbp-jcal-legend i.repeatDay{background:#ffe4e6;border-color:#fda4af}
#bookly-tbs .hbp-jcal-legend i.exceptionDay{border:1px dashed #fb7185}
#bookly-tbs .hbp-jcal-legend i.hbp-today{border:1.5px solid var(--hbp-cal-primary)}
#bookly-tbs .bookly-js-holidays-nav .jcal_year{min-width:110px;font-weight:600;font-variant-numeric:tabular-nums;opacity:1}
/* In rtl the first button (previous year) sits on the right: point it right, and the next one left. */
#bookly-tbs [dir="rtl"] .bookly-js-holidays-nav .bookly-js-jCalBtn .fa-angle-left,body.rtl #bookly-tbs .bookly-js-holidays-nav .bookly-js-jCalBtn .fa-angle-left,
#bookly-tbs [dir="rtl"] .bookly-js-holidays-nav .bookly-js-jCalBtn .fa-angle-right,body.rtl #bookly-tbs .bookly-js-holidays-nav .bookly-js-jCalBtn .fa-angle-right{transform:scaleX(-1)}
#bookly-tbs .bookly-popover.bookly-jcal[dir="rtl"] .custom-control{text-align:right}
/* Official holidays panel above the Jalali annual calendar (holidays.js officialPanel). */
#bookly-tbs .hbp-official{margin:14px 0 0;text-align:right}
#bookly-tbs .hbp-official-bar{text-align:center}
#bookly-tbs .hbp-official-body{margin-top:10px;padding:14px 16px;background:#fff;border:1px solid var(--hbp-cal-border);border-radius:10px}
#bookly-tbs .hbp-official-body[hidden]{display:none}
#bookly-tbs .hbp-official-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
#bookly-tbs .hbp-official-sources .custom-control-inline{margin-right:0;margin-left:1rem}
#bookly-tbs .hbp-official-note{margin:8px 0;font-size:12.5px;color:var(--hbp-cal-muted)}
#bookly-tbs .hbp-official-list{max-height:340px;overflow:auto}
#bookly-tbs .hbp-official-table{margin:0}
#bookly-tbs .hbp-official-table th,#bookly-tbs .hbp-official-table td{text-align:right;vertical-align:middle}
#bookly-tbs .hbp-official-table th:first-child,#bookly-tbs .hbp-official-table td:first-child{width:36px}
#bookly-tbs .hbp-official-table .custom-control{min-height:1.25rem}
#bookly-tbs .hbp-official-date{white-space:nowrap;font-variant-numeric:tabular-nums}
#bookly-tbs .hbp-official-off td{color:var(--hbp-cal-muted)}
#bookly-tbs .hbp-official-empty{margin:8px 0;color:var(--hbp-cal-muted)}
#bookly-tbs .hbp-official-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
#bookly-tbs .hbp-official-status{margin-left:auto;font-size:12.5px}

/* Hamzeh: Bookly's portalled menus, popovers and dropdown lists do not inherit page RTL; keep them right-aligned on every Bookly page of an RTL admin. */
body.rtl #bookly-portal-host :is([role="menu"],[role="menuitem"],[role="listbox"],[role="option"],[data-slot="popover-content"],[data-slot="dropdown-menu-content"]){
    direction:rtl!important;
    text-align:right!important;
}
/* Hamzeh: filter dropdowns (services, staff, locations…) indent child items with Bootstrap ml-*; mirror the indent in RTL so the hierarchy shows. */
body.rtl #bookly-tbs .bookly-dropdown-menu .custom-control.ml-1{margin-left:0!important;margin-right:.25rem!important}
body.rtl #bookly-tbs .bookly-dropdown-menu .custom-control.ml-2{margin-left:0!important;margin-right:.5rem!important}
body.rtl #bookly-tbs .bookly-dropdown-menu .custom-control.ml-3{margin-left:0!important;margin-right:1rem!important}
body.rtl #bookly-tbs .bookly-dropdown-menu .custom-control.ml-4{margin-left:0!important;margin-right:1.5rem!important}
body.rtl #bookly-tbs .bookly-dropdown-menu .custom-control.ml-5{margin-left:0!important;margin-right:3rem!important}
body.rtl #bookly-tbs .bookly-dropdown-menu li li.bookly-dropdown-item{padding-left:0!important;padding-right:1.5rem!important}
/* Hamzeh: the label of Bookly dropdown toggles (staff, services… selectors in forms and dialogs) is hard-coded text-left. */
body.rtl #bookly-tbs .bookly-dropdown > .btn .text-left{text-align:right!important}
/* Hamzeh: table search boxes pad the start (right in RTL) for the icon but pin the icon with left-2; move the icon to the padded side. */
body.rtl .bookly-dt-search-input > .bookly\:left-2{left:auto!important;right:.5rem!important}
/* Hamzeh: search fields in Bookly dialogs (e.g. table settings) pin the icon and padding to the left; mirror both in RTL. */
body.rtl #bookly-portal-host .bookly\:relative > .bookly\:absolute.bookly\:left-2\.5{left:auto!important;right:.625rem!important}
body.rtl #bookly-portal-host .bookly\:relative > .bookly\:left-2\.5 + input{padding-left:.625rem!important;padding-right:2rem!important}

/* Hamzeh: Bookly's classic terms checkbox (6_details.php) carries an inline "float:left; margin-right:5px",
   which in RTL put the box at the far left, away from its label on the right. */
body.rtl .bookly-form .bookly-checkbox-group > label.bookly-checkbox,
[dir="rtl"] .bookly-form .bookly-checkbox-group > label.bookly-checkbox { float: right !important; margin-right: 0 !important; margin-left: 5px !important; }
