.icrlsb-calendar {max-width:980px; padding:22px; border:1px solid #dbe4eb; border-radius:14px; background:#fff; color:#253647; box-shadow:0 2px 8px rgba(15,37,57,.05); font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; box-sizing:border-box;}
.icrlsb-calendar *{box-sizing:border-box}
.icrlsb-cal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.icrlsb-cal-heading h3{font-size:19px;margin:0 0 4px;color:#173e58}
.icrlsb-cal-heading p{margin:0;color:#657585;font-size:13px}
.icrlsb-zone-label{font-size:12px;font-weight:600;display:grid;gap:4px;color:#52687b}
.icrlsb-zone-select,.icrlsb-duration-select{border:1px solid #ccd7df;background:#fff;color:#243746;border-radius:7px;padding:7px;font-size:13px;max-width:290px}
.icrlsb-cal-columns{display:grid;grid-template-columns:minmax(240px,1.08fr) minmax(210px,.92fr);gap:24px}
.icrlsb-cal-month{min-width:0}
.icrlsb-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.icrlsb-cal-nav strong{font-size:15px}
.icrlsb-nav-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 33px;cursor:pointer;border:1px solid #d3dce3;background:#fff;border-radius:7px;color:#173e58;width:33px;min-width:33px;height:33px;min-height:33px;margin:0;padding:0!important;line-height:1}
.icrlsb-nav-btn svg{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.icrlsb-nav-btn:disabled{opacity:.25;cursor:default}
.icrlsb-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.icrlsb-dow{text-align:center;font-size:11px;color:#667d90;padding:5px 0}
.icrlsb-day{min-height:45px;background:#f5f7f9;border:1px solid transparent;border-radius:8px;color:#a0adb7;position:relative;font-size:14px}
.icrlsb-day:disabled{cursor:default}
.icrlsb-day-open{color:#19405d;background:#eaf5fb;cursor:pointer;font-weight:650}
.icrlsb-day-open:hover{border-color:#76b0d2}
.icrlsb-day-active{background:#0c5e8c;color:#fff;border-color:#0c5e8c}
.icrlsb-day-active:hover{border-color:#0c5e8c}
.icrlsb-day-dots{position:absolute;bottom:5px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:3px;pointer-events:none}
.icrlsb-day-dot{display:block;width:4px;height:4px;flex:none;border-radius:50%;background:#0c5e8c}
.icrlsb-day-active .icrlsb-day-dot{background:#fff}
.icrlsb-cal-times{padding:6px 0 0;min-width:0}
.icrlsb-cal-times h4{font-size:17px;margin:0 0 6px;color:#173e58}
.icrlsb-cal-help{font-size:12px;color:#73808c;margin:0 0 14px}
.icrlsb-time-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px}
.icrlsb-time-btn{border:1px solid #bad3e3;background:#f7fbfe;border-radius:8px;padding:10px 6px;color:#164768;cursor:pointer;font:inherit;font-size:13px}
.icrlsb-time-btn.is-selected{background:#0c5e8c;color:#fff;border-color:#0c5e8c}
/* Public calendar controls follow ICRL's standard hover treatment.
   Keep these selectors scoped so Elementor/theme button rules do not leak in,
   and preserve disabled dates/buttons as unavailable rather than highlighting them. */
.icrlsb-calendar button.icrlsb-nav-btn:not(:disabled):hover,
.icrlsb-calendar button.icrlsb-day-open:not(:disabled):hover,
.icrlsb-calendar button.icrlsb-time-btn:not(:disabled):hover{
  background-color:#1eb2ff !important;
  border-color:#1eb2ff !important;
  color:#fff !important;
}
.icrlsb-calendar button.icrlsb-day-open:not(:disabled):hover .icrlsb-day-dot{background:#fff}
.icrlsb-calendar button.icrlsb-day:disabled:hover{
  background-color:#f5f7f9 !important;
  border-color:transparent !important;
  color:#a0adb7 !important;
}
.icrlsb-calendar button.icrlsb-nav-btn:disabled:hover{
  background-color:#fff !important;
  border-color:#d3dce3 !important;
  color:#173e58 !important;
}
.icrlsb-calendar button.icrlsb-nav-btn:focus-visible,
.icrlsb-calendar button.icrlsb-day-open:focus-visible,
.icrlsb-calendar button.icrlsb-time-btn:focus-visible{
  outline:2px solid #0c5e8c;
  outline-offset:2px;
}
.icrlsb-duration{background:#f4f7f9;border-radius:8px;padding:13px;display:grid;gap:10px}
.icrlsb-duration label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#38516a}
.icrlsb-cal-summary{font-size:13px;margin:0;color:#314b5e}
.icrlsb-preview-note{margin:17px 0 0;padding-top:11px;border-top:1px solid #e8edf0;color:#7b8490;font-size:11px;letter-spacing:.025em}
.icrlsb-cal-empty{color:#566879;font-size:14px}
@media(max-width:640px){.icrlsb-calendar{padding:13px}.icrlsb-cal-columns{grid-template-columns:1fr;gap:17px}.icrlsb-cal-times{border-top:1px solid #e5eaf0;padding-top:13px}}
/* v0.2 administrator-only customer checkout preview; scoped to the shortcode calendar. */
.icrlsb-booking-panel{margin-top:15px;border-top:1px solid #dbe4eb;padding-top:16px}
.icrlsb-booking-panel h4{margin:0 0 8px;color:#173e58;font-size:16px}
.icrlsb-booking-price p{margin:2px 0 7px;font-size:15px;font-weight:700;color:#164768}
.icrlsb-booking-price p.icrlsb-discount-caption,.icrlsb-booking-price p.icrlsb-offer-message{font-size:12px;color:#51677a;font-weight:normal}
.icrlsb-offer-code{margin:0 0 8px;font-size:12px;color:#446884}
.icrlsb-booking-form{display:grid;gap:11px;margin-top:14px}
.icrlsb-booking-form label{display:grid;gap:5px;color:#314b5e;font-size:12px;font-weight:650}
.icrlsb-booking-form input{width:100%;min-width:0;border:1px solid #bfd2de;border-radius:7px;padding:10px;font-size:14px;background:#fff;color:#253647}
.icrlsb-calendar button.icrlsb-checkout-btn{border:1px solid #0c5e8c;background:#0c5e8c;color:#fff;border-radius:12px;padding:12px;cursor:pointer;font:inherit;font-size:13px;font-weight:650}
.icrlsb-calendar button.icrlsb-checkout-btn:not(:disabled):hover{border-color:#1eb2ff!important;background:#1eb2ff!important;color:#fff!important}
.icrlsb-calendar button.icrlsb-checkout-btn:disabled{opacity:.65;cursor:wait}
.icrlsb-booking-response{margin:0;color:#9b2b2b;font-size:12px}
.icrlsb-return-notice{border-left:4px solid #0c5e8c;padding:16px 18px;margin:0 0 18px;background:#f2f9fd;color:#173e58;border-radius:6px;max-width:980px;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.icrlsb-return-notice[hidden]{display:none!important}
.icrlsb-return-heading{font-size:18px!important;margin:0 0 8px!important;color:#173e58!important}
.icrlsb-return-body{margin:0 0 12px!important;color:#344f61}
.icrlsb-return-details{display:grid;grid-template-columns:minmax(130px,190px) minmax(0,1fr);gap:7px 15px;margin:13px 0!important}
.icrlsb-return-details dt{font-weight:600;color:#53697a}
.icrlsb-return-details dd{margin:0!important;overflow-wrap:anywhere}
.icrlsb-return-footer{margin:12px 0 0!important;font-size:13px;color:#51677a}
.icrlsb-return-notice.is-unconfirmed{background:#faf8f6;border-left-color:#ac6d3c}
.icrlsb-return-notice button.icrlsb-return-refresh{background:#0c5e8c;color:#fff;border:0;border-radius:9px;padding:9px 13px;font-size:13px;cursor:pointer}
.icrlsb-return-notice button.icrlsb-return-refresh:hover{background:#1eb2ff!important;color:#fff!important}
@media(max-width:460px){.icrlsb-return-details{grid-template-columns:1fr;gap:1px}.icrlsb-return-details dd{margin-bottom:8px!important}}
/* v0.5.1 invitation code and single-click payment controls. */
.icrlsb-price-notice{font-size:12px;color:#425b6d;margin:4px 0 8px;padding:0}
.icrlsb-price-notice:not(:empty){border-left:3px solid #1eb2ff;padding:9px 11px;background:#eff8fd;border-radius:0 6px 6px 0}
.icrlsb-applied-offer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#466277;font-size:12px}
.icrlsb-calendar button.icrlsb-remove-offer{padding:0;background:none;border:0;color:#0c5e8c;text-decoration:underline;font-size:12px;cursor:pointer}
.icrlsb-calendar button.icrlsb-remove-offer:hover{color:#085173}
.icrlsb-code-details{border:1px solid #dbe4eb;border-radius:8px;padding:9px 12px;color:#344e62}
/* Draw the disclosure arrow ourselves: theme icon fonts can show as an empty square. */
.icrlsb-calendar .icrlsb-code-details summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none!important;font-weight:600;font-size:12px;cursor:pointer;color:#344e62}
.icrlsb-calendar .icrlsb-code-details summary::-webkit-details-marker{display:none}
.icrlsb-calendar .icrlsb-code-details summary::marker{content:""}
.icrlsb-calendar .icrlsb-code-details summary::after{content:""!important;display:block;flex:0 0 7px;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 3px 4px 0}
.icrlsb-calendar .icrlsb-code-details[open] summary::after{transform:rotate(225deg);margin-top:5px;margin-bottom:0}
.icrlsb-code-row{display:flex;gap:8px;align-items:center;margin-top:10px}
.icrlsb-code-row input{flex:1;min-width:0}
.icrlsb-calendar button.icrlsb-offer-apply{flex:none;background:#0c5e8c;color:#fff;border:1px solid #0c5e8c;border-radius:8px;padding:9px 13px;font-size:12px;cursor:pointer}
.icrlsb-calendar button.icrlsb-offer-apply:hover{background:#1eb2ff!important;border-color:#1eb2ff!important;color:#fff!important}
.icrlsb-booking-form .icrlsb-override-label{display:flex;gap:8px;align-items:center;font-weight:normal}
.icrlsb-booking-form .icrlsb-override-label input{width:auto;min-width:0}
@media(max-width:460px){.icrlsb-code-row{flex-wrap:wrap}.icrlsb-code-row input{flex-basis:100%}}
