.booking-calendar-host{position:relative;display:inline-block}.booking-calendar-host>input{width:164px;cursor:pointer;background:#fff;padding-right:30px}.booking-calendar-host::after{content:'▦';position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:#516455}.booking-calendar{position:absolute;top:calc(100% + 6px);left:0;width:300px;padding:14px;background:#fff;border:1px solid #cdd8d2;border-radius:12px;box-shadow:0 8px 28px #17362624;z-index:80}.booking-calendar[hidden]{display:none}.booking-calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}.booking-calendar-heading button,.booking-calendar-footer button{background:#fff;color:#244a37;border:1px solid #d7e2da;padding:5px 11px;min-width:32px}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.booking-calendar-weekday{text-align:center;font-size:12px;color:#6d776f;padding:5px 0}.booking-calendar .booking-calendar-day{border:2px solid transparent;background:#fff;color:#253b30;padding:0;height:34px;min-width:0;border-radius:7px;font-size:13px}.booking-calendar .booking-calendar-day.has-bookings{border-color:#acd7f5;background:#eff8ff;color:#214968}.booking-calendar .booking-calendar-day.selected{outline:none;box-shadow:0 0 0 1px #285d49;font-weight:800;text-decoration:underline}.booking-calendar .booking-calendar-day.outside-month{color:#8a948e}.booking-calendar .booking-calendar-day:hover{background:#e7f1e9}.booking-calendar .booking-calendar-day.has-bookings:hover{background:#dcefff}.booking-calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:#586b60}.booking-calendar-footer span::before{content:'';display:inline-block;width:12px;height:12px;background:#eff8ff;border:2px solid #acd7f5;border-radius:3px;margin-right:6px;vertical-align:middle}@media(max-width:400px){.booking-calendar{width:278px;padding:10px}}
.booking-calendar .booking-calendar-day.over-forty{border-color:#e89191;background:#fff3f3;color:#8e2929}.booking-calendar .booking-calendar-day.over-forty:hover{background:#ffe2e2}.booking-calendar .booking-calendar-day.is-full{border-color:#c62828;background:#ef5350;color:#fff}.booking-calendar .booking-calendar-day.is-full:hover{background:#e53935}.booking-calendar .booking-calendar-day.has-closure{border-color:#757575;background:#bdbdbd;color:#303030}.booking-calendar .booking-calendar-day.has-closure:hover{background:#aaa}.booking-calendar-legend{display:flex;flex-wrap:wrap;gap:5px 9px;max-width:220px}.booking-calendar-legend span::before{content:'';display:inline-block;width:10px;height:10px;border:2px solid #acd7f5;border-radius:3px;margin-right:4px;vertical-align:middle;background:#eff8ff}.booking-calendar-legend .busy::before{border-color:#e89191;background:#fff3f3}.booking-calendar-legend .full::before{border-color:#c62828;background:#ef5350}.booking-calendar-legend .closed::before{border-color:#757575;background:#bdbdbd}.booking-calendar-host{width:max-content;max-width:100%}.booking-calendar-footer button{white-space:nowrap;flex-shrink:0}

/* All screen text at 1.5x original size; printed reports retain their sizes. */
@media screen{.booking-calendar-weekday{font-size:18px}.booking-calendar .booking-calendar-day{font-size:19.5px}.booking-calendar-footer{font-size:18px}}
@media screen{.booking-calendar{width:360px;max-width:calc(100vw - 40px)}.booking-calendar .booking-calendar-day{height:42px}.booking-calendar-host>input{width:210px}.booking-calendar-legend{max-width:260px}}
