/**
 * Sales Igniter Rental -- skin of the unified flatpickr calendar (both theme modes),
 * ported from the WooCommerce plugin's sibooking-calendar-ui.css.
 *
 * Everything coloured derives from the custom properties Model\CalendarStyle prints
 * inline (:root{--sib-accent;--sib-accent-rgb;--sib-radius}) -- the Calendar Styler's
 * main colour and corner radius. The four skins (.sib-style-airy | card | bold |
 * classic) only change chrome. Scoped under .sib-cal (the calendar block) and .sib-fp
 * (the flatpickr container, which is appended to <body> for popups).
 */
:root {
    --sib-accent: #0274be;
    --sib-accent-rgb: 2, 116, 190;
    --sib-radius: 10px;
}
.sib-cal, .sib-fp {
    --sib-ink: #1f2a37;
    --sib-navy: #10243d;
    --sib-muted: #5b6b7f;
    --sib-soft: #7d8fa3;
    --sib-line: #e4e9f0;
    --sib-card: #ffffff;
    --sib-ground: #f6f8fb;
    --sib-tint: rgba(var(--sib-accent-rgb), 0.12);
    --sib-tint-strong: rgba(var(--sib-accent-rgb), 0.22);
    --sib-ok-bg: #e7f6ec;
    --sib-ok: #166534;
    --sib-warn-bg: #fef3e7;
    --sib-warn: #b8560d;
    /* row HEIGHT (the columns are fluid); the WooCommerce plugin's figure */
    --sib-cell: 44px;
    color: var(--sib-ink);
}
.sib-cal {
    position: relative; margin: 0 0 18px; max-width: 100%; box-sizing: border-box;
    /* only the wrapper is a container: inline-size containment on .sib-fp would give the
       inline calendar no intrinsic width and collapse it inside its mount */
    container-type: inline-size; container-name: sibcal;
}
.sib-cal *, .sib-cal *::before, .sib-cal *::after { box-sizing: border-box; }
/* Our own chrome is built from <button>s, and a theme that skins every button --
   uppercase, letter-spaced, its own font -- turns the step labels and time slots
   into something else. Reset only OUR buttons: the Reserve button and the quantity
   stepper are Magento's and are moved into the bar as they are. */
.sib-cal .sib-step, .sib-cal .sib-slot, .sib-cal .sib-reset, .sib-cal .sib-trigger, .sib-cal .sib-panel-close {
    font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none;
}
.sib-cal .hiddenDates { display: none !important; }

/* ------------------------------------------------------------------ fields */
.sib-cal .sibooking-datecontainer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; width: 100%; margin: 0 0 10px; }
.sib-cal .sibooking-flex-label { flex: 0 0 auto; min-width: 96px; margin: 0; }
.sib-cal .sibooking-flex-label label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sib-soft); }
.sib-cal .sidatepicker { flex: 1 1 160px; min-width: 0; }
.sib-cal .sibooking-flex-time { flex: 0 1 130px; min-width: 100px; margin: 0; }
.sib-cal .sib-fixedlength-control { flex: 1 1 160px; }
.sib-cal .sib-fixedlength-control .fixed_length { margin: 0 !important; }
.sib-cal .sib-fixedlength-control select { width: 100%; }
.sib-cal input.sib-input, .sib-cal .sidatepicker input.form-control, .sib-cal .sidatepicker input.input {
    height: 44px; padding: 0 14px; border: 1px solid #d5dce5; border-radius: var(--sib-radius); background: var(--sib-card);
    font-size: 15px; color: var(--sib-navy); font-weight: 600; width: 100%; min-width: 0; cursor: pointer; box-shadow: none; margin: 0;
}
.sib-cal .sidatepicker input.flatpickr-input[type="hidden"] { display: none; }
.sib-cal input.sib-input:focus, .sib-cal .sidatepicker input.form-control:focus, .sib-cal .sidatepicker input.active { outline: none; border-color: var(--sib-accent); box-shadow: 0 0 0 3px var(--sib-tint); }
.sib-cal input.sib-input::placeholder { color: #a3b1c2; font-weight: 400; }
.sib-cal .sib-no-calendar { padding: 12px 0; font-weight: 600; }
.sib-cal .sib-configurable-note { margin: 0 0 10px; font-size: 13px; }
.sib-cal .sib-inline-mount { display: flex; justify-content: flex-start; overflow-x: auto; margin: 0 0 14px; }
.sib-cal .sib-inline-mount > .flatpickr-calendar { flex: 1 1 auto; min-width: min-content; }
.sib-cal.is-loading { pointer-events: none; }
.sib-cal .sibooking-loading-overlay { position: absolute; inset: 0; background: rgba(255,255,255,.6); z-index: 5; }
.sib-cal .sib-actions { margin: 6px 0 0; }
.sib-cal .sib-btn { height: 44px; padding: 0 22px; border-radius: var(--sib-radius); background: var(--sib-accent); border-color: var(--sib-accent); color: #fff; font-weight: 700; cursor: pointer; }

/* ------------------------------------------------------------------ legend */
.sib-cal .sib-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 4px 0 12px; font-size: 12px; color: var(--sib-muted); }
.sib-cal .sib-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.sib-cal .sib-legend-swatch { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--sib-line); display: inline-block; }
.sib-cal .sib-legend-swatch--selected { background: var(--sib-accent); border-color: var(--sib-accent); }
.sib-cal .sib-legend-swatch--booked { background: #fdecec; border-color: #f5c2c2; }
.sib-cal .sib-legend-swatch--closed { background: repeating-linear-gradient(135deg, #eef1f5 0 3px, #fff 3px 6px); }
.sib-cal .sib-legend-swatch--turnover { background: var(--sib-warn-bg); border-color: #f2d3b3; }

/* --------------------------------------------------------------- flatpickr */
/* ---------------------------------------------------------------- sizing
 * The day grid is FLUID: seven columns of one seventh of the box, exactly as the
 * WooCommerce plugin does it. Nothing here may be a pixel width, and --sib-cell is
 * the row HEIGHT only.
 *
 * Why: the upstream stylesheet hard-codes 307.875px on .flatpickr-calendar,
 * .flatpickr-days and .dayContainer and caps a day at 39x39, and on top of that
 * flatpickr's own setCalendarWidth() writes an INLINE width onto .flatpickr-days
 * and .flatpickr-calendar whenever showMonths > 1. A skin that sets its own cell
 * size and its own padding makes every one of those numbers wrong, and the seventh
 * column then runs past the right edge of .flatpickr-days, whose overflow:hidden
 * slices it -- the Saturday column cut off and its heading reading "SA". Beating
 * that inline width needs !important; a wider cell only moved the clipping point.
 *
 * Fluid removes the class of bug rather than one instance of it: a month is always
 * exactly as wide as the box that holds it, at any cell size, any radius, any skin,
 * any column width, one month or three, inline or popup, LTR or RTL. The one fixed
 * width left is the popup calendar, which floats over the page and so has no box to
 * measure itself against. */
.sib-fp.flatpickr-calendar { font-family: inherit; width: auto; max-width: 100%; }
.sib-fp.flatpickr-calendar.inline { top: 0; }
.sib-fp .flatpickr-innerContainer, .sib-fp .flatpickr-rContainer { display: block; width: 100%; max-width: none; overflow: visible; }
.sib-fp .flatpickr-days, .sib-fp .flatpickr-weekdays { width: 100% !important; min-width: 0 !important; max-width: none !important; overflow: visible; }
.sib-fp .dayContainer, .sib-fp .flatpickr-weekdaycontainer {
    width: 100% !important; min-width: 0 !important; max-width: none !important; justify-content: flex-start;
}
.sib-fp .flatpickr-day { width: 14.2857%; max-width: none; flex-basis: 14.2857%; margin: 0; }
.sib-fp span.flatpickr-weekday { flex: 0 0 14.2857%; max-width: 14.2857%; overflow: hidden; }
.sib-fp .flatpickr-months { width: 100%; }
/* the inline calendar fills its mount; min-content keeps a multi-month grid from
   being squeezed below the width its months need (the mount scrolls instead) */
.sib-fp.sib-fp--inline.flatpickr-calendar { width: 100% !important; min-width: min-content; box-shadow: none; border: 1px solid var(--sib-line); border-radius: calc(var(--sib-radius) + 4px); padding: 10px; background: var(--sib-card); }
.sib-fp.sib-fp--popup { --sib-cell: 40px; }
.sib-fp.sib-fp--popup.flatpickr-calendar { width: 336px !important; max-width: calc(100vw - 24px); background: var(--sib-card); border: 1px solid var(--sib-line); border-radius: calc(var(--sib-radius) + 4px); box-shadow: 0 12px 32px rgba(16, 36, 61, .12); padding: 10px; z-index: 99999; }
.sib-fp.sib-fp--popup.flatpickr-calendar::before, .sib-fp.sib-fp--popup.flatpickr-calendar::after { display: none; }
.sib-fp .flatpickr-months { align-items: center; margin-bottom: 6px; }
.sib-fp .flatpickr-months .flatpickr-month { height: 36px; color: var(--sib-navy); }
.sib-fp .flatpickr-current-month { font-size: 15px; font-weight: 700; padding: 9px 0 0; color: var(--sib-navy); }
/* flatpickr positions the month header absolutely at width:75%, and sizes the year input to
   100% of its wrapper, so in any narrow calendar - the admin styler preview, a phone, a
   two-month layout - the year drops onto a second line under the month name. Lay the header
   out as a centred, non-wrapping row instead, keeping clear of the absolutely positioned
   prev/next arrows, and let the year size to its own content. */
.sib-fp .flatpickr-current-month { display: flex; align-items: center; justify-content: center; gap: 6px;
    white-space: nowrap; width: auto; left: 0; right: 0; padding-left: 34px; padding-right: 34px; }
.sib-fp .flatpickr-current-month .numInputWrapper { width: auto; flex: 0 0 auto; }
.sib-fp .flatpickr-current-month .numInputWrapper input.cur-year { width: 4.5ch; min-width: 4.5ch; padding-right: 0; }
/* the year reads as part of the heading, not as a number field: flatpickr's up/down
   spinner arrows are hidden and the input is inert, as the WooCommerce plugin does it */
.sib-fp .flatpickr-current-month .numInputWrapper span { display: none; }
.sib-fp .flatpickr-current-month input.cur-year { pointer-events: none; }
/* Luma skins every <select> and <input> inside a product form -- a bordered box, a
   background arrow, a fixed height -- and the Magento admin does the same, so the
   month dropdown and the year turned into two form controls sitting in the middle
   of the month heading. Strip the skin but keep the select a real select: the
   native menulist arrow is its only affordance, and it is what the WooCommerce
   plugin shows. */
.sib-fp .flatpickr-current-month select.flatpickr-monthDropdown-months,
.sib-fp .flatpickr-current-month input.cur-year {
    background: transparent; background-image: none; border: 0; box-shadow: none; outline: none;
    height: auto; min-height: 0; min-width: 0; margin: 0; border-radius: 0;
    font: inherit; color: inherit; line-height: inherit;
}
.sib-fp .flatpickr-current-month select.flatpickr-monthDropdown-months {
    -webkit-appearance: menulist; -moz-appearance: menulist; appearance: menulist;
    width: auto; padding: 0 2px 0 0;
}
.sib-fp .flatpickr-current-month .flatpickr-monthDropdown-months { flex: 0 1 auto; max-width: 100%; }
.sib-fp .flatpickr-current-month .cur-month, .sib-fp .flatpickr-current-month .cur-year, .sib-fp .flatpickr-current-month .flatpickr-monthDropdown-months { font-weight: 700; color: var(--sib-navy); }
.sib-fp .flatpickr-months .flatpickr-prev-month, .sib-fp .flatpickr-months .flatpickr-next-month { top: 0; height: 34px; width: 34px; padding: 0; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--sib-line); background: var(--sib-card); color: var(--sib-navy); fill: var(--sib-navy); }
.sib-fp .flatpickr-months .flatpickr-prev-month:hover svg, .sib-fp .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--sib-accent); }
.sib-fp .flatpickr-months .flatpickr-prev-month svg, .sib-fp .flatpickr-months .flatpickr-next-month svg { width: 13px; height: 13px; }
.sib-fp .flatpickr-weekdays { height: 26px; }
.sib-fp span.flatpickr-weekday { font-size: 10px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; color: var(--sib-soft); }
.sib-fp .dayContainer { gap: 3px 0; }
.sib-fp .flatpickr-day {
    height: var(--sib-cell); line-height: 1; border-radius: var(--sib-radius); border: 1px solid transparent; color: var(--sib-ink); font-size: 14px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; position: relative;
}
.sib-fp .flatpickr-day:hover, .sib-fp .flatpickr-day:focus { background: var(--sib-ground); border-color: var(--sib-ground); }
.sib-fp .flatpickr-day.today { border-color: transparent; }
.sib-fp .flatpickr-day.today::after { content: ""; position: absolute; bottom: 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--sib-accent); }
.sib-fp .flatpickr-day.today:hover { background: var(--sib-ground); color: var(--sib-ink); }
.sib-fp .flatpickr-day.selected, .sib-fp .flatpickr-day.selected:hover, .sib-fp .flatpickr-day.selected:focus,
.sib-fp .flatpickr-day.sib-range-start, .sib-fp .flatpickr-day.sib-range-end { background: var(--sib-accent); border-color: var(--sib-accent); color: #fff; }
.sib-fp .flatpickr-day.selected::after, .sib-fp .flatpickr-day.sib-range-start::after { background: #fff; }
.sib-fp .flatpickr-day.sib-inrange:not(.selected) { background: var(--sib-tint); border-radius: 0; border-color: var(--sib-tint); }
.sib-fp .flatpickr-day.sib-range-start:not(.sib-range-end) { border-radius: var(--sib-radius) 0 0 var(--sib-radius); }
.sib-fp .flatpickr-day.sib-range-end:not(.sib-range-start) { border-radius: 0 var(--sib-radius) var(--sib-radius) 0; }
.sib-fp .flatpickr-day.prevMonthDay, .sib-fp .flatpickr-day.nextMonthDay { color: #c3cbd6; }
.sib-fp .flatpickr-day.flatpickr-disabled, .sib-fp .flatpickr-day.flatpickr-disabled:hover { color: #c3cbd6; background: transparent; border-color: transparent; cursor: not-allowed; }
.sib-fp .flatpickr-day.sib-booked.flatpickr-disabled, .sib-fp .flatpickr-day.sib-booked.flatpickr-disabled:hover { background: #fdecec; color: #c98484; text-decoration: line-through; }
.sib-fp .flatpickr-day.sib-turnover.flatpickr-disabled, .sib-fp .flatpickr-day.sib-turnover.flatpickr-disabled:hover { background: var(--sib-warn-bg); color: #c9a483; }
.sib-fp .flatpickr-day.sib-closed.flatpickr-disabled { background: repeating-linear-gradient(135deg, #eef1f5 0 3px, #fff 3px 7px); color: #a3b1c2; }
.sib-fp .flatpickr-day.sib-closed.sib-inrange { background: repeating-linear-gradient(135deg, rgba(var(--sib-accent-rgb), .18) 0 3px, var(--sib-tint) 3px 7px); }
.sib-fp .flatpickr-day.sib-range-start.flatpickr-disabled, .sib-fp .flatpickr-day.sib-range-end.flatpickr-disabled,
.sib-fp .flatpickr-day.sib-range-start.flatpickr-disabled:hover, .sib-fp .flatpickr-day.sib-range-end.flatpickr-disabled:hover { background: var(--sib-accent); border-color: var(--sib-accent); color: #fff; text-decoration: none; }
.sib-fp .flatpickr-day.sib-inrange.flatpickr-disabled:not(.sib-closed) { background: var(--sib-tint); border-color: var(--sib-tint); color: #a3b1c2; }
.sib-left { font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 999px; background: var(--sib-ok-bg); color: var(--sib-ok); line-height: 1.3; }
.sib-left.is-low { background: var(--sib-warn-bg); color: var(--sib-warn); }
.sib-fp .flatpickr-day.selected .sib-left, .sib-fp .flatpickr-day.sib-range-start .sib-left, .sib-fp .flatpickr-day.sib-range-end .sib-left { background: rgba(255, 255, 255, .25); color: #fff; }
.sib-fp .flatpickr-day.flatpickr-disabled .sib-left { display: none; }
/* Two or three months side by side (Calendar Styler > Months shown). The three
   stacked containers -- month headings, weekday row, day grid -- are siblings, so
   each of them has to divide its row the same way or a month's columns stop lining
   up with its own heading. They must NOT wrap for the same reason: a wrap in one
   container is not matched by a wrap in the other two. When the column is genuinely
   too narrow, --sib-month-min holds a month at a legible width and .sib-cal-mount
   scrolls sideways instead. */
.sib-fp.flatpickr-calendar.multiMonth { --sib-month-min: 196px; }
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-months,
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-weekdays,
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-days { display: flex; flex-wrap: nowrap; gap: 0 14px; }
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-innerContainer,
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-rContainer { display: block; }
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-month,
.sib-fp.flatpickr-calendar.multiMonth .flatpickr-weekdaycontainer,
.sib-fp.flatpickr-calendar.multiMonth .dayContainer {
    flex: 1 1 0; width: auto !important; min-width: var(--sib-month-min) !important; max-width: none !important;
}
.sib-fp.sib-fp--popup.flatpickr-calendar.multiMonth { width: max-content !important; }
/* A popup is appended to <body>, so it has no mount to scroll inside and max-width
   is the only thing keeping it on a phone screen. Three months cannot fit there at
   a legible size, so the popup scrolls its own grid instead of clipping it. */
.sib-fp.sib-fp--popup.flatpickr-calendar.multiMonth .flatpickr-innerContainer { overflow-x: auto; }
/* very narrow viewports: shorter rows, and a multi-month grid gives up some width
   before it gives up and scrolls */
@media (max-width: 480px) {
    .sib-cal, .sib-fp { --sib-cell: 38px; }
    .sib-fp.flatpickr-calendar.multiMonth { --sib-month-min: 168px; }
}

/* ------------------------------------------------------------------ skins */
.sib-style-card.sib-fp.flatpickr-calendar { box-shadow: 0 18px 40px rgba(16, 36, 61, .12); border-radius: 16px; }
.sib-style-card.sib-fp { --sib-cell: 50px; }
.sib-style-bold.sib-fp .flatpickr-months { background: var(--sib-navy); border-radius: calc(var(--sib-radius) + 2px); padding: 4px 6px; }
.sib-style-bold.sib-fp .flatpickr-months .flatpickr-month, .sib-style-bold.sib-fp .flatpickr-current-month, .sib-style-bold.sib-fp .flatpickr-current-month .cur-month, .sib-style-bold.sib-fp .flatpickr-current-month .cur-year, .sib-style-bold.sib-fp .flatpickr-current-month .flatpickr-monthDropdown-months { color: #fff; background: transparent; }
.sib-style-bold.sib-fp .flatpickr-months .flatpickr-prev-month, .sib-style-bold.sib-fp .flatpickr-months .flatpickr-next-month { background: var(--sib-navy); border-color: rgba(255,255,255,.3); color: #fff; fill: #fff; }
.sib-style-bold.sib-fp .flatpickr-day { font-weight: 600; }
.sib-style-classic.sib-fp.flatpickr-calendar { border-radius: 5px; box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, .08); padding: 6px; }
.sib-style-classic.sib-fp { --sib-cell: 39px; }
.sib-style-classic.sib-fp .flatpickr-day { border-radius: 150px; }
.sib-style-classic.sib-fp .flatpickr-day.sib-inrange:not(.selected) { border-radius: 0; }
.sib-style-classic.sib-fp .flatpickr-months .flatpickr-prev-month, .sib-style-classic.sib-fp .flatpickr-months .flatpickr-next-month { border: 0; }
.sib-cal.sib-style-classic input.sib-input { border-radius: 4px; }

/* ------------------------------------------------------------ timepicker */
.ui-timepicker-wrapper.sib-timepicker { border-radius: var(--sib-radius, 10px); box-shadow: 0 12px 32px rgba(16, 36, 61, .12); }
.ui-timepicker-wrapper.sib-timepicker .ui-timepicker-selected { background: var(--sib-accent, #0274be); }

/* ---------------------------------------------------------------- RTL
 * An INLINE calendar is mounted inside .sib-cal[dir="rtl"] and inherits its
 * direction. A POPUP calendar does not: flatpickr appends it to <body>, and
 * Magento puts only lang, never dir, on <html> for an RTL store locale -- so in
 * Arabic the popup rendered left to right, Sunday on the left, next to an inline
 * picker that was correct. flatpickr 4.6.13 has no RTL support of its own to fall
 * back on: the string "rtl" does not occur anywhere in the library, and a locale's
 * rtl:true does nothing, so the ".rtl" class this file used to key off was never
 * added by anything.
 *
 * :lang() matches on the language subtag, so :lang(ar) covers ar, ar-SA, ar_EG and
 * so on, and it matches the appended calendar because lang inherits down the whole
 * document. The list is Model\Calendar\LocaleFormat::RTL_LANGUAGES -- keep the two
 * in step. */
.sib-cal[dir="rtl"] { direction: rtl; text-align: right; }
.sib-cal[dir="rtl"] .sibooking-datecontainer { flex-direction: row-reverse; }
.sib-cal[dir="rtl"] .sib-legend { flex-direction: row-reverse; }
.sib-cal[dir="rtl"] .sib-fp,
.sib-fp:lang(ar), .sib-fp:lang(he), .sib-fp:lang(fa), .sib-fp:lang(ur), .sib-fp:lang(ps),
.sib-fp:lang(ckb), .sib-fp:lang(sd), .sib-fp:lang(ug), .sib-fp:lang(yi) { direction: rtl; }
/* flatpickr pins the arrows with physical left / right, so they have to be swapped
   and mirrored by hand: in an RTL calendar the previous month is to the right. */
.sib-cal[dir="rtl"] .sib-fp .flatpickr-prev-month,
.sib-fp:lang(ar) .flatpickr-prev-month, .sib-fp:lang(he) .flatpickr-prev-month, .sib-fp:lang(fa) .flatpickr-prev-month,
.sib-fp:lang(ur) .flatpickr-prev-month, .sib-fp:lang(ps) .flatpickr-prev-month, .sib-fp:lang(ckb) .flatpickr-prev-month,
.sib-fp:lang(sd) .flatpickr-prev-month, .sib-fp:lang(ug) .flatpickr-prev-month, .sib-fp:lang(yi) .flatpickr-prev-month { left: auto; right: 0; }
.sib-cal[dir="rtl"] .sib-fp .flatpickr-next-month,
.sib-fp:lang(ar) .flatpickr-next-month, .sib-fp:lang(he) .flatpickr-next-month, .sib-fp:lang(fa) .flatpickr-next-month,
.sib-fp:lang(ur) .flatpickr-next-month, .sib-fp:lang(ps) .flatpickr-next-month, .sib-fp:lang(ckb) .flatpickr-next-month,
.sib-fp:lang(sd) .flatpickr-next-month, .sib-fp:lang(ug) .flatpickr-next-month, .sib-fp:lang(yi) .flatpickr-next-month { right: auto; left: 0; }
.sib-cal[dir="rtl"] .sib-fp .flatpickr-prev-month svg, .sib-cal[dir="rtl"] .sib-fp .flatpickr-next-month svg,
.sib-fp:lang(ar) .flatpickr-prev-month svg, .sib-fp:lang(ar) .flatpickr-next-month svg,
.sib-fp:lang(he) .flatpickr-prev-month svg, .sib-fp:lang(he) .flatpickr-next-month svg,
.sib-fp:lang(fa) .flatpickr-prev-month svg, .sib-fp:lang(fa) .flatpickr-next-month svg,
.sib-fp:lang(ur) .flatpickr-prev-month svg, .sib-fp:lang(ur) .flatpickr-next-month svg,
.sib-fp:lang(ps) .flatpickr-prev-month svg, .sib-fp:lang(ps) .flatpickr-next-month svg,
.sib-fp:lang(ckb) .flatpickr-prev-month svg, .sib-fp:lang(ckb) .flatpickr-next-month svg,
.sib-fp:lang(sd) .flatpickr-prev-month svg, .sib-fp:lang(sd) .flatpickr-next-month svg,
.sib-fp:lang(ug) .flatpickr-prev-month svg, .sib-fp:lang(ug) .flatpickr-next-month svg,
.sib-fp:lang(yi) .flatpickr-prev-month svg, .sib-fp:lang(yi) .flatpickr-next-month svg { transform: scaleX(-1); }
/* an RTL scroll container starts at its right edge, so a grid too wide for its
   mount must overflow to the LEFT and be scrolled to, never be centre-clipped */
.sib-cal[dir="rtl"] .sib-cal-mount, .sib-cal[dir="rtl"] .sib-inline-mount { justify-content: flex-start; }

/* =============================================================================
   Pricing card (Model\Product\PricingCard) -- port of the WooCommerce plugin's card.
   Same custom properties as the calendar styler; .sib-style-* skins.
   ============================================================================= */
.sib-pricing {
    --sib-ink: #1f2a37; --sib-navy: #10243d; --sib-muted: #5b6b7f; --sib-soft: #7d8fa3; --sib-line: #e4e9f0; --sib-card: #ffffff; --sib-ground: #f6f8fb;
    --sib-tint: rgba(var(--sib-accent-rgb), 0.12); --sib-ok-bg: #e7f6ec; --sib-ok: #166534; --sib-warn-bg: #fef3e7; --sib-warn: #b8560d;
    font-family: inherit; font-size: 14px; line-height: 1.4; color: var(--sib-ink); background: var(--sib-card); border: 1px solid var(--sib-line);
    border-radius: calc(var(--sib-radius) + 4px); box-shadow: 0 12px 32px rgba(16, 36, 61, .08); overflow: hidden; margin: 0 0 18px; max-width: 460px; text-align: left;
}
.sib-pricing *, .sib-pricing *::before, .sib-pricing *::after { box-sizing: border-box; }
.sib-pricing-head { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 6px 14px; padding: 14px 16px 12px; }
.sib-pricing-from { display: inline-flex; align-items: baseline; gap: 6px; }
.sib-pricing-pre { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sib-soft); }
.sib-pricing-amt { font-size: 30px; font-weight: 800; color: var(--sib-navy); letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.sib-pricing-amt .price { color: inherit; font-size: inherit; font-weight: inherit; }
.sib-pricing-unit { font-size: 15px; font-weight: 700; color: var(--sib-muted); }
.sib-pricing-avail { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--sib-ok-bg); color: var(--sib-ok); white-space: nowrap; }
.sib-pricing-avail.low { background: var(--sib-warn-bg); color: var(--sib-warn); }
.sib-pricing-avail.out { background: #fdecec; color: #b42318; }
.sib-pricing-avail i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; }
.sib-pricing-sub { font-size: 12.5px; color: var(--sib-muted); flex: 1 1 100%; }
.sib-pricing-sub .price { color: inherit; font-weight: 600; }
.sib-pricing-toggle { margin-left: auto; border: 0; background: none; color: var(--sib-accent); font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; padding: 4px 0; display: inline-flex; align-items: center; gap: 4px; text-transform: none; letter-spacing: 0; box-shadow: none; line-height: 1; }
.sib-pricing-toggle:hover, .sib-pricing-toggle:focus { background: none; color: var(--sib-accent); text-decoration: underline; text-underline-offset: 3px; outline: none; border: 0; }
.sib-pricing-toggle svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.sib-pricing[data-open="false"] .sib-pricing-toggle svg { transform: rotate(-90deg); }
.sib-pricing[data-open="false"] .sib-rates { display: none; }
.sib-pricing--custom .sib-pricing-head { display: block; }
table.sib-rates { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; margin: 0; border: 0; }
.sib-rates th, .sib-rates td { padding: 8px 16px; text-align: left; border: 0; border-top: 1px solid var(--sib-line); background: transparent; vertical-align: middle; }
.sib-rates th { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sib-soft); background: var(--sib-ground); border-top: 0; }
.sib-rates td:last-child, .sib-rates th:last-child { text-align: right; }
.sib-rates td.per { color: var(--sib-soft); font-size: 12.5px; }
.sib-rates td .price { color: inherit; font-weight: inherit; font-size: inherit; }
.sib-rates .sib-rates-qty { color: var(--sib-soft); }
@media (max-width: 640px) {
    .sib-pricing[data-open="auto"] .sib-rates { display: none; }
    .sib-pricing[data-open="auto"] .sib-pricing-toggle svg { transform: rotate(-90deg); }
    .sib-pricing-amt { font-size: 24px; }
}
.sib-pricing--loop { box-shadow: none; margin: 4px 0 0; max-width: none; display: block; }
.sib-pricing--loop .sib-pricing-head { padding: 8px 12px; }
.sib-pricing--loop .sib-pricing-amt { font-size: 20px; }
.sib-pricing--loop .sib-pricing-sub { display: none; }
.sib-style-bold.sib-pricing .sib-rates th { background: var(--sib-navy); color: rgba(255, 255, 255, .8); }
.sib-style-classic.sib-pricing { box-shadow: none; border-radius: 4px; }
.sib-style-card.sib-pricing { box-shadow: 0 18px 40px rgba(16, 36, 61, .12); border-radius: 16px; }
/* the rental total for the chosen dates, filled by the calendar JS */
.sib-rental-total { display: none; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0; padding: 10px 16px; border-top: 1px solid var(--sib-line); background: rgba(var(--sib-accent-rgb), .08); }
.sib-rental-total.is-in { display: flex; }
.sib-rental-total-label { font-size: 13px; font-weight: 600; color: var(--sib-muted); }
.sib-rental-total-qty { font-weight: 400; }
.sib-rental-total-amount { font-size: 20px; font-weight: 700; color: var(--sib-accent); margin-left: auto; }
.sib-rental-total-amount .price { color: inherit; }
/* Once the calendar has quoted the chosen dates the total is the product's price, so
   the card's standing "From $x / day" headline steps aside for it (sibookingFlatpickr
   adds .is-quoted). The Rates toggle and the availability line stay. */
.sib-pricing.is-quoted .sib-pricing-from,
.sib-pricing.is-quoted .sib-pricing-sub { display: none; }
.sib-pricing.is-quoted .sib-pricing-head { justify-content: flex-end; }

/* A bundle priced per product has no rates of its own to draw, so its card IS the
   total: the same element, the same fade, the same place on the page. The shell
   keeps the class (and so the custom properties the strip is coloured from) but
   none of the chrome, and takes up no room at all until the calendar has quoted
   something -- so the page looks exactly as it does today until the dates are in. */
.sib-pricing--total-only { border: 0; border-radius: 0; box-shadow: none; background: transparent; overflow: visible; margin: 0; }
.sib-pricing--total-only .sib-rental-total { border: 1px solid var(--sib-line); border-radius: calc(var(--sib-radius) + 4px); margin: 0 0 18px; }

/* ------------------------------------------------ one price, not two
 * The pricing card is the product's price display on a rental product: "From $x /
 * day", the rates table, and "Total for your dates" underneath once the calendar has
 * quoted the chosen dates. Magento's own price box is then a second, contradictory
 * price -- $0.00 before a date is picked, and (until sibookingFlatpickr stopped
 * writing it) the same total again afterwards. Hide every Magento price display on a
 * page that has the card: the product price box, the Hyvä override span, and the
 * bundle summary that sits below the Customize / Rent button. */
body:has([data-role="sirent-pricing-card"]) .product-info-main .price-box .price-container,
body:has([data-role="sirent-pricing-card"]) .product-info-main .price-box .price-box-override,
body:has([data-role="sirent-pricing-card"]) .product-info-main .price-box .pricing-ppr,
body:has([data-role="sirent-pricing-card"]) .product-info-main .price-box .pricing-ppr-list,
body:has([data-role="sirent-pricing-card"]) .product-add-form .price-box .price-container,
body:has([data-role="sirent-pricing-card"]) .bundle-options-container .block-bundle-summary .price-box,
body:has([data-role="sirent-pricing-card"]) .product-info-main .regular-rental-price,
body:has([data-role="sirent-pricing-card"]) .product-info-main .you-save-text { display: none !important; }

/* =============================================================================
 * The guided range pickers (In Line / Popup) and the time slot grid.
 * Ported from the WooCommerce plugin's sibooking-calendar-ui.css -- same class
 * names, same look, so the two products read as one.
 * ========================================================================== */

.sib-hidden-fields { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sib-hidden-fields input { position: absolute; opacity: 0; pointer-events: none; }
.sib-cal .sib-h { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sib-soft); }
.sib-cal .sib-hint, .sib-cal .sib-stage-hint { font-size: 12px; color: var(--sib-soft); line-height: 1.5; margin-top: 10px; }
.sib-cal .sib-stage-hint:empty { display: none; }
.sib-cal .sib-ic { width: 18px; height: 18px; stroke: var(--sib-accent); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

/* --------------------------------------------------------------- progress */
.sib-cal .sib-steps { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 6px; margin: 0 0 14px; max-width: 460px; }
.sib-cal .sib-steps:empty { display: none; }
.sib-cal .sib-step { flex: 1 1 0; display: flex; flex-direction: column; gap: 5px; cursor: default; min-width: 0; margin: 0; padding: 0; background: none; border: 0; }
.sib-cal .sib-step.is-reachable { cursor: pointer; }
.sib-cal .sib-step-bar { height: 4px; border-radius: 2px; background: var(--sib-line); }
.sib-cal .sib-step.is-done .sib-step-bar, .sib-cal .sib-step.is-on .sib-step-bar { background: var(--sib-accent); }
.sib-cal .sib-step.is-on .sib-step-bar { box-shadow: 0 0 0 2px var(--sib-tint-strong); }
.sib-cal .sib-step-t { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #a3b1c2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sib-cal .sib-step.is-done .sib-step-t, .sib-cal .sib-step.is-on .sib-step-t { color: var(--sib-navy); }
.sib-cal .sib-step-v { font-size: 12px; color: var(--sib-muted); min-height: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sib-cal .sib-step.is-done .sib-step-v { color: var(--sib-accent); font-weight: 700; }
.sib-cal .sib-step.is-done.is-reachable:hover .sib-step-v { text-decoration: underline; text-underline-offset: 2px; }
.sib-cal .sib-step.is-reachable:focus { outline: none; }
.sib-cal .sib-step.is-reachable:focus .sib-step-bar { box-shadow: 0 0 0 2px var(--sib-tint-strong); }
/* fixed_first_available: the start date was chosen for the customer, so it is shown as done, not clickable */
.sib-cal .sib-step.is-auto { cursor: default; opacity: .95; }

/* ----------------------------------------------------------------- stage */
.sib-cal .sib-stage { position: relative; }
.sib-cal .sib-pane { background: var(--sib-card); border: 1px solid var(--sib-line); border-radius: calc(var(--sib-radius) + 4px); padding: 16px; box-shadow: 0 12px 32px rgba(16, 36, 61, .08); }
.sib-cal .sib-pane-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 10px; min-height: 16px; }
.sib-cal .sib-pane-head:empty { display: none; }
.sib-cal .sib-pane-ctx { font-size: 12px; color: var(--sib-muted); }
.sib-cal .sib-hours { font-size: 12px; color: var(--sib-muted); }
/* The mount never squeezes the grid. It is a flex row of exactly one item that fills
   it, NOT a centred one: a centred item that overflows spills equally past both
   edges and the left overflow cannot be scrolled to -- which is how two months in a
   narrow product column lost their first and last columns at once. */
.sib-cal .sib-cal-mount { display: flex; justify-content: flex-start; overflow-x: auto; }
.sib-cal .sib-cal-mount > .flatpickr-calendar { flex: 1 1 auto; min-width: min-content; }
.sib-cal .sib-placeholder { padding: 28px 12px; text-align: center; color: var(--sib-soft); font-size: 14px; border: 1px dashed var(--sib-line); border-radius: var(--sib-radius); }

/* guided: one pane at a time; the time pane sits beside the calendar when there is room */
.sib-cal--inline .sib-stage { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 460px; }
.sib-cal--inline .sib-summary { max-width: 460px; }
.sib-cal--inline .sib-pane { display: none; }
.sib-cal--inline .sib-stage[data-active="date"] .sib-pane--date,
.sib-cal--inline .sib-stage[data-active="done"] .sib-pane--date,
.sib-cal--inline .sib-stage[data-active="time"] .sib-pane--time { display: block; }
/* The calendar and the slot grid sit side by side once the BLOCK is wide enough, not
   once the window is: the same calendar renders in a full-width product page, a
   narrow sidebar and the admin styler preview. Fractional columns are safe now that
   the day grid is fluid -- 7fr / 5fr is the WooCommerce plugin's split. */
@container sibcal (min-width: 640px) {
    .sib-cal--inline.has-time:not(.sib-cal--popup) .sib-stage { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; max-width: 780px; }
    .sib-cal--inline.has-time:not(.sib-cal--popup) .sib-steps,
    .sib-cal--inline.has-time:not(.sib-cal--popup) .sib-summary { max-width: 780px; }
    .sib-cal--inline.has-time:not(.sib-cal--popup) .sib-pane--date,
    .sib-cal--inline.has-time:not(.sib-cal--popup) .sib-pane--time { display: block; }
}

/* separate: the slot grid is a popover under the time field */
.sib-cal--separate { position: relative; }
.sib-cal--separate .sib-stage { position: static; }
.sib-cal--separate .sib-pane--time { display: none; position: absolute; z-index: 9999; width: min(392px, 100%); }
.sib-cal--separate .sib-pane--time.is-open { display: block; }
.sib-cal--separate .sib-time-field { cursor: pointer; }

/* ----------------------------------------------------------------- slots */
.sib-cal .sib-slots { display: flex; flex-direction: column; gap: 14px; }
.sib-cal .sib-slot-group { display: flex; flex-direction: column; gap: 8px; }
.sib-cal .sib-slot-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.sib-cal .sib-slot {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 44px; padding: 4px 6px;
    border-radius: var(--sib-radius); border: 1px solid #d5dce5; background: var(--sib-card); font-size: 13px; font-weight: 600;
    color: var(--sib-ink); cursor: pointer; line-height: 1.2; margin: 0; white-space: nowrap;
}
.sib-cal .sib-slot:hover { border-color: var(--sib-accent); }
.sib-cal .sib-slot.is-sel, .sib-cal .sib-slot.is-sel:hover { background: var(--sib-accent); border-color: var(--sib-accent); color: #fff; }
.sib-cal .sib-slot.is-suggested { border-color: var(--sib-accent); box-shadow: inset 0 0 0 1px var(--sib-accent); }
.sib-cal .sib-slot.is-off, .sib-cal .sib-slot.is-off:hover { color: #c3cbd6; border-style: dashed; border-color: #e4e9f0; background: #fafbfc; font-weight: 400; cursor: not-allowed; }
.sib-cal .sib-slot.is-before-pickup, .sib-cal .sib-slot.is-min-period { border-style: solid; background: var(--sib-ground); color: #a3b1c2; }
.sib-cal .sib-slot-sub { font-size: 9px; font-weight: 400; color: var(--sib-soft); letter-spacing: .02em; }
.sib-cal .sib-slot.is-sel .sib-slot-sub { color: rgba(255, 255, 255, .85); }

/* --------------------------------------------------------- the action bar */
.sib-cal .sib-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 14px 0 0; padding: 14px 16px; border-radius: calc(var(--sib-radius) + 2px); background: var(--sib-ground); }
.sib-cal .sib-summary-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sib-cal .sib-summary-text b { font-size: 18px; color: var(--sib-navy); font-weight: 700; }
.sib-cal .sib-summary-text small { font-size: 13px; color: var(--sib-muted); }
.sib-cal .sib-summary-text b.sib-wait { font-size: 15px; color: var(--sib-muted); }
.sib-cal .sib-summary-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; }
.sib-cal .sib-summary-actions .field.qty, .sib-cal .sib-summary-actions .control.qty { margin: 0; }
.sib-cal .sib-summary-actions .field.qty .label { display: none; }
.sib-cal .sib-summary-actions input[name="qty"] { height: 44px; width: 62px; text-align: center; }
.sib-cal .sib-summary-actions .action.primary.tocart { margin: 0; }
.sib-cal .sib-reset { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--sib-line); background: var(--sib-card); color: var(--sib-muted); font-size: 13px; font-weight: 600; cursor: pointer; }
.sib-cal .sib-reset:hover { border-color: var(--sib-accent); color: var(--sib-accent); }
.sib-cal .sib-reset .sib-ic { width: 15px; height: 15px; stroke: currentColor; }
.sib-cal .sib-needs-dates { opacity: .55; cursor: not-allowed; }

/* ------------------------------------------------------------ popup panel */
.sib-cal--popup { position: relative; }
.sib-cal--popup .sib-trigger {
    display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #d5dce5;
    border-radius: var(--sib-radius); background: var(--sib-card); color: #a3b1c2; font-size: 15px; font-weight: 400; text-align: left; cursor: pointer; margin: 0 0 8px;
}
.sib-cal--popup.has-dates .sib-trigger { color: var(--sib-navy); font-weight: 600; }
.sib-cal--popup .sib-trigger:hover, .sib-cal--popup.is-open .sib-trigger { border-color: var(--sib-accent); box-shadow: 0 0 0 3px var(--sib-tint); }
.sib-cal--popup .sib-trigger-text { flex: 1 1 auto; min-width: 0; white-space: normal; line-height: 1.3; font-size: 14px; padding: 6px 0; }
.sib-cal--popup .sib-trigger-part { display: inline-block; white-space: nowrap; }
.sib-cal--popup .sib-trigger-caret { width: 8px; height: 8px; border-right: 2px solid var(--sib-soft); border-bottom: 2px solid var(--sib-soft); transform: rotate(45deg); margin: -4px 4px 0 0; flex: 0 0 auto; }
.sib-cal--popup .sib-panel {
    display: none; position: absolute; left: 0; top: 100%; z-index: 99999; width: max-content; max-width: min(560px, 100%);
    background: var(--sib-card); border: 1px solid var(--sib-line); border-radius: calc(var(--sib-radius) + 6px);
    box-shadow: 0 24px 60px rgba(16, 36, 61, .18); padding: 18px 16px 14px; margin-top: 4px;
}
.sib-cal--popup .sib-panel .sib-pane { box-shadow: none; }
.sib-cal--popup.is-open .sib-panel { display: block; }
.sib-cal--popup .sib-panel-close { position: absolute; top: 8px; right: 10px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--sib-ground); color: var(--sib-muted); font-size: 20px; line-height: 1; cursor: pointer; padding: 0; z-index: 2; }
.sib-cal--popup .sib-panel-close:hover { background: var(--sib-tint); color: var(--sib-navy); }
.sib-cal--popup .sib-backdrop { display: none; }
.sib-cal--popup .sib-summary { margin-top: 12px; }

/* phones: the panel becomes a bottom sheet with a backdrop */
@media (max-width: 640px) {
    .sib-cal--popup .sib-backdrop { position: fixed; inset: 0; background: rgba(16, 36, 61, .45); z-index: 99998; }
    .sib-cal--popup.is-open .sib-backdrop { display: block; }
    .sib-cal--popup .sib-panel {
        position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-width: none; max-height: 92vh; overflow: auto;
        border-radius: 18px 18px 0 0; margin: 0; padding-bottom: max(14px, env(safe-area-inset-bottom));
    }
    body.sib-panel-open { overflow: hidden; }
    .sib-cal .sib-summary { flex-direction: column; align-items: stretch; }
    .sib-cal .sib-summary-actions { margin-left: 0; }
}

/* ------------------------------------------------------------------ skins
 * The same four skins the WooCommerce plugin ships, rule for rule, so a merchant
 * who has seen one product recognises the other. Airy is the base above. */

/* card: popover look, taller cells, no grey ground on the action bar */
.sib-style-card .sib-pane { box-shadow: 0 18px 40px rgba(16, 36, 61, .12); border-radius: 16px; }
.sib-style-card .sib-summary { background: transparent; border: 1px solid var(--sib-line); }

/* bold: dark header band, high contrast */
.sib-style-bold .sib-pane { padding: 0; overflow: hidden; }
.sib-style-bold .sib-pane-head { background: var(--sib-navy); color: #fff; padding: 12px 16px; margin: 0; }
.sib-style-bold .sib-pane-head .sib-h { color: rgba(255, 255, 255, .8); }
.sib-style-bold .sib-hours { color: rgba(255, 255, 255, .7); }
.sib-style-bold .sib-cal-mount, .sib-style-bold .sib-slots, .sib-style-bold .sib-stage-hint { padding: 14px 16px; }
.sib-style-bold .sib-stage-hint { padding-top: 0; }
.sib-style-bold .sib-summary { background: var(--sib-navy); color: #fff; }
.sib-style-bold .sib-summary .sib-summary-text b { color: #fff; }
.sib-style-bold .sib-summary .sib-summary-text small { color: #b9c6d6; }
.sib-style-bold .sib-summary .sib-reset { background: transparent; color: #b9c6d6; border-color: rgba(255, 255, 255, .25); }
.sib-style-bold .sib-step-t, .sib-style-bold .sib-step.is-done .sib-step-t { letter-spacing: .08em; }

/* classic: the plain flatpickr look (round cells, no cards) */
.sib-style-classic .sib-pane { border: 0; box-shadow: none; padding: 0; background: transparent; }
.sib-style-classic .sib-slot, .sib-style-classic input.sib-input { border-radius: 4px; }
.sib-style-classic .sib-summary { background: transparent; padding: 10px 0; }

/* right-to-left: flatpickr keeps direction:ltr on its own root, so only our chrome flips */
.sib-cal[dir="rtl"] .sib-summary-actions { margin-left: 0; margin-right: auto; }
.sib-cal--popup[dir="rtl"] .sib-panel { left: auto; right: 0; }
