/* Calendar tables must override the site-wide 640px minimum. Wrapping columns keep the agenda clear of every date, including Sunday. */
.booking-request-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;box-sizing:border-box;border-radius:10px;background:#b83232;color:#fff;font:700 10px/1 system-ui,sans-serif;vertical-align:middle}.booking-request-badge[hidden],.bc-request-notice[hidden]{display:none!important}#navBookings{display:inline-flex;gap:5px;align-items:center}#burger{position:relative}#bookingMobileBadge{position:absolute;right:-2px;top:-2px;border:2px solid var(--card,#fff);height:19px;min-width:19px}
.bc-view-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 18px}.bc-view-switch{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line,#d8dee5);border-radius:8px;background:var(--card,#fff)}.bc-view-switch a{padding:7px 16px;text-decoration:none;color:inherit;font-size:.88rem;border-radius:5px}.bc-view-switch a[aria-current=page]{background:#203566;color:#fff;font-weight:650}.bc-request-notice{font-size:.85rem;color:#952c2c;text-decoration:none;padding:7px 10px;background:#fff0ee;border:1px solid #ebc4bd;border-radius:6px}.bc-request-notice>span:last-child{font-size:.8rem}
.booking-calendar{width:100%;min-width:0;color:var(--ink,#1b2440)}.bc-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.bc-period,.bc-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.bc-period h2{font-size:1.2rem;margin:0 8px;line-height:1.4}.booking-calendar button,.booking-calendar select,.booking-calendar input[type=date],.bc-error button{font:inherit;font-size:.82rem;line-height:1.3;min-height:34px;padding:6px 9px;border:1px solid var(--line,#d8dee5);border-radius:5px;color:inherit;background:var(--card,#fff)}.booking-calendar button,.bc-error button{cursor:pointer}.bc-period button[aria-label]{font-size:1.3rem;padding:2px 10px}.bc-controls label{font-size:.78rem;display:flex;align-items:center;gap:5px}.bc-controls input[type=date]{max-width:150px}.bc-zone{font-size:.8rem;color:var(--ink-soft,#56637a);margin:10px 0 14px}.bc-layout{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}.bc-layout>*{min-width:0;max-width:100%;box-sizing:border-box}.bc-layout>:first-child{flex:1.4 1 26rem}.bc-month{width:100%;min-width:0;max-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px}.bc-month th{border:0;background:transparent;padding:5px 0;text-align:center;color:var(--ink-soft,#56637a);font-size:.76rem;font-weight:600}.bc-month td{padding:0;border:0;background:transparent;vertical-align:top}.bc-month tr{background:transparent!important}.bc-month .bc-day{display:flex;align-items:center;flex-direction:column;gap:4px;width:100%;min-width:0;min-height:83px;height:100%;padding:7px 2px;border-color:transparent;background:var(--card,#fff);border-radius:7px}.bc-day:hover{border-color:#b3c6dc}.bc-day.is-outside .bc-date{opacity:.5}.bc-day.is-today .bc-date{font-weight:800;text-decoration:underline;text-underline-offset:4px}.bc-month .bc-day.is-selected{background:#eef3fc;border:2px solid #355989;color:#203566;padding:6px 1px}.bc-date{font-size:.9rem}.bc-day-count{font-size:.65rem;min-height:1em}.bc-dots{display:flex;align-items:center;gap:3px;min-height:8px}.bc-dots>span{font-size:.6rem}.bc-dot{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#708093}.bc-dot.accepted{background:#365e94}.bc-dot.completed{background:#287258}.bc-dot.requested{background:#b58b39}.bc-dot.needs-response{background:#ba3434}.bc-dot.cancelled,.bc-dot.declined{background:transparent;border:1px solid #6d737b}.bc-legend{display:flex;gap:12px;flex-wrap:wrap;padding:10px 3px;font-size:.72rem;color:var(--ink-soft,#56637a)}.bc-legend>span{display:inline-flex;align-items:center;gap:5px}.bc-show-cancelled{font-size:.78rem;display:flex;align-items:center;gap:6px;padding:5px 0}.bc-show-cancelled input{width:16px;height:16px;accent-color:#203566}
.bc-agenda{flex:1 1 19rem;overflow-wrap:anywhere;border:1px solid var(--line,#d8dee5);border-radius:9px;padding:16px;background:var(--card,#fff);min-width:0}.bc-agenda h3{font-size:1rem;margin:0 0 8px}.bc-agenda ul{list-style:none;margin:0;padding:0}.bc-agenda li{padding:14px 0;border-top:1px solid var(--line,#d8dee5)}.bc-agenda li:last-child{padding-bottom:0}.bc-agenda h4{font-size:1rem;margin:7px 0 3px;overflow-wrap:anywhere}.bc-agenda p{font-size:.83rem;line-height:1.5;margin:3px 0;color:var(--ink-soft,#56637a)}.bc-visit-top{display:flex;align-items:center;gap:6px;justify-content:space-between;flex-wrap:wrap}.bc-visit-top strong{font-size:.85rem}.bc-status{font-size:.68rem;line-height:1.4;padding:3px 6px;border-radius:4px;color:#3d526c;background:#edf1f6}.bc-status.needs-response,.bk-status.bk-request-warning{color:#982d2d;background:#fff0ee;border:1px solid #e4b4af}.bc-status.completed{color:#216045;background:#edf8f2}.bc-status.cancelled,.bc-status.declined{color:#616775;background:#f0f1f3}.bc-open{display:inline-block;font-size:.82rem;font-weight:650;margin-top:9px;color:var(--ink,#203566);text-underline-offset:3px}.bc-empty{padding:12px 0}.bc-foot{font-size:.8rem;color:var(--ink-soft,#56637a);margin:18px 0 0;line-height:1.6}.bc-foot a{white-space:normal}.bc-error{padding:16px;border:1px solid var(--line,#d8dee5);border-radius:8px}
:is(.booking-calendar,.bc-view-controls,.bc-error) :is(button,a,input,select):focus-visible{outline:3px solid var(--focus-color,#1B2440);outline-offset:3px}
@media(max-width:1050px){.bc-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.bc-month .bc-day{min-height:69px}.bc-toolbar{align-items:flex-start}.bc-period h2{font-size:1.05rem;margin:0 3px}}
@media(max-width:420px){.bc-controls{gap:8px}.bc-period{gap:4px}.bc-month{border-spacing:2px}.bc-month .bc-day{min-height:64px}.bc-day-count{font-size:.6rem}.bc-period h2{font-size:.94rem}.bc-agenda{padding:12px}.bc-request-notice{font-size:.8rem}}
@media(pointer:coarse){.booking-calendar button,.booking-calendar select,.booking-calendar input[type=date],.bc-view-switch a,.bc-error button{min-height:44px}.bc-open{padding:8px 0;min-height:44px}}
html.high-contrast :is(.bc-status,.bc-request-notice,.bc-month .bc-day.is-selected){color:#000;background:#fff;border:2px solid #000}html.high-contrast .booking-request-badge{color:#fff;background:#000}html.high-contrast .bc-day.is-outside .bc-date{opacity:1}
@media(forced-colors:active){.booking-request-badge,.bc-status{color:CanvasText;background:Canvas;border:1px solid CanvasText}.bc-day.is-selected{outline:2px solid Highlight}.bc-dot{border:1px solid CanvasText}}
