.availability-section{padding-top:55px;padding-bottom:55px}.availability-card{background:#f3f8fa;border:1px solid #d7e5eb;border-radius:18px;padding:35px;display:grid;grid-template-columns:1fr 1fr;gap:45px;color:#102d42}.availability-card h2{margin-top:0}.availability-card label,.booking-admin label{display:block;font-size:16px;font-weight:600;margin-bottom:8px}.availability-card select,.booking-admin input,.booking-admin select,.booking-admin textarea{font:inherit;width:100%;padding:12px;border:1px solid #a6bbc5;border-radius:7px;background:white;color:#102d42;box-sizing:border-box}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.calendar-toolbar h3{font-size:22px;margin:0}.calendar-toolbar button{border:1px solid #a6bbc5;background:white;color:#102d42;border-radius:6px;padding:8px 12px;cursor:pointer;font:inherit;font-size:14px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays span{text-align:center;font-size:14px;padding:6px 0}.calendar-day{aspect-ratio:1;border-radius:7px;font:inherit;font-size:16px;border:1px solid #b4d0d4;cursor:pointer;color:#143f4a;background:#e4f2ef}.calendar-day.unavailable{background:#e6e9eb;color:#687781;cursor:default;border-color:transparent;text-decoration:line-through}.calendar-day.selected{background:#102d42;color:white;border:2px solid #c7a56c}.calendar-day:focus-visible,.calendar-toolbar button:focus-visible{outline:3px solid #b08d4f;outline-offset:2px}.calendar-legend{display:flex;gap:20px;font-size:14px;margin-top:14px}.calendar-legend span:before{content:'';display:inline-block;width:12px;height:12px;margin-right:7px;border-radius:3px;background:#e4f2ef;border:1px solid #b4d0d4}.calendar-legend span+span:before{background:#e6e9eb;border-color:#d1d6d9}.calendar-status{font-size:14px;min-height:24px}.date-summary{margin:20px 0;font-size:16px}.availability-card button.button{cursor:pointer;font:inherit}.availability-card button:disabled{opacity:.6;cursor:default}.booking-admin{max-width:1100px;margin:45px auto;padding:0 25px;color:#102d42}.booking-admin h1{font-size:36px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.booking-admin form,.booking-record{border:1px solid #d7e5eb;border-radius:12px;padding:25px;background:#f3f8fa}.booking-admin label{margin-top:18px}.booking-admin textarea{min-height:100px}.booking-impact{padding:14px;background:#e4f2ef;border-radius:7px;font-size:16px}.booking-record{margin-bottom:18px;overflow-wrap:anywhere}.booking-record h3{font-size:20px;margin:0 0 12px}.booking-record p{margin:8px 0}.booking-cancel{display:block;margin-top:16px;background:white!important;color:#102d42!important;border:1px solid #a6bbc5!important;font-size:14px!important}.admin-status{min-height:26px;margin:20px 0}.admin-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.admin-heading .button{font-size:14px}.booking-admin .button{cursor:pointer}.admin-note{font-size:16px}.availability-card .eyebrow{margin-top:0}@media(max-width:750px){.availability-card{grid-template-columns:1fr;padding:24px;gap:25px}.admin-grid{grid-template-columns:1fr}.availability-section{padding-top:35px;padding-bottom:35px}.calendar-toolbar h3{font-size:20px}.admin-heading{display:block}}

/* Strong availability colours, with borders and strike-through for clarity. */
.calendar-day{background:#50e39c;color:#073d27;border:2px solid #15965c;font-weight:700}
.calendar-day:not(.unavailable):not(.selected):hover{background:#20cf7c;border-color:#087d49}
.calendar-day.unavailable{background:#ff9c9c;color:#641b25;border:2px solid #dd5364;font-weight:700;opacity:1;text-decoration:line-through}
.calendar-day.selected{background:#102d42;color:#fff;border:3px solid #f4be42;box-shadow:0 0 0 2px #102d42}
.calendar-legend span:before{background:#50e39c;border:2px solid #15965c}
.calendar-legend span+span:before{background:#ff9c9c;border:2px solid #dd5364}
