.booking-main{max-width:1680px;padding:30px;margin:20px auto 70px}.booking-main h1{font:500 2.7rem Georgia,serif;margin:10px 0 20px}.booking-main h2{font:500 1.7rem Georgia,serif}.booking-main p{line-height:1.6}/* A continuous week grid, with status colour reinforced by text. */
.booking-calendar-section{margin:28px 0}
.booking-legend{display:flex;flex-wrap:wrap;gap:10px 24px;margin:0 0 16px;font-size:.9rem;font-weight:650}
.booking-legend span{display:flex;align-items:center;gap:9px}
.booking-legend span::before{content:"";width:16px;height:16px;border-radius:4px;border:2px solid;display:block}
.legend-open::before{background:#d6f3e6;border-color:#16835a!important}
.legend-pending::before{background:#fff0c2;border-color:#b86d08!important}
.legend-planned::before{background:#dceaff;border-color:#326dcc!important}
.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#c6d4e0;border:1px solid #c6d4e0;border-radius:14px;overflow:hidden;box-shadow:0 8px 26px #17324d09}
.booking-weekday{background:#17324d;color:white;padding:15px 6px;text-align:center;font-size:.875rem;font-weight:700}
.booking-day{background:#fff;padding:10px;min-width:0;min-height:210px}
.booking-day h2{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font:700 .94rem system-ui;margin:2px 0 16px;min-height:28px}
.booking-day--today{background:#f0f7ff;box-shadow:inset 0 3px #326dcc}
.booking-day--outside{background:#edf1f5;color:#6a7a8b}
.booking-today-label{background:#2459a8;color:#fff;border-radius:4px;padding:3px 6px;font-size:.75rem}
.booking-mobile-weekday{display:none}
.booking-day .booking-empty{font-size:.875rem;color:#607581;margin:0;line-height:1.5}
.booking-slot{border:1px solid;border-left-width:4px;border-radius:8px;padding:10px;margin:0 0 10px;font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.booking-slot--open{background:#d6f3e6;border-color:#16835a;color:#124d38}
.booking-slot--pending{background:#fff0c2;border-color:#b86d08;color:#674008}
.booking-slot--planned{background:#dceaff;border-color:#326dcc;color:#173d79}
.booking-slot--blocked{background:#edf0f3;border-color:#8493a3;color:#435262}
.booking-event-status{display:block;font-size:.875rem;font-weight:750;margin-bottom:5px}
.booking-slot strong{display:block;font-size:1.1rem;line-height:1.3;margin-bottom:5px}
.booking-slot small{display:block;font-size:.875rem;margin:5px 0}
.booking-slot a{display:inline-block;color:inherit!important;font-weight:650;margin-top:7px;text-underline-offset:3px}
.booking-slot button{font-size:.875rem;padding:6px 8px;margin:4px 0 0;max-width:100%}
.booking-slot-actions{display:flex;flex-wrap:wrap;gap:5px}
.booking-day:focus-within{outline:2px solid #2459a8;outline-offset:-2px}
.booking-request--pending{background:#fff6d9!important;border-left:5px solid #b86d08!important}
.booking-request--planned{background:#eaf1ff!important;border-left:5px solid #326dcc!important}
.booking-request.booking-request--pending .status{background:#f8dfa2;color:#674008}
.booking-request.booking-request--planned .status{background:#c9dcfb;color:#173d79}
.booking-request{scroll-margin-top:24px}
.booking-main button{border:1px solid #aac3bd;border-radius:6px;background:white;color:#17324d;min-height:38px;cursor:pointer}.booking-main button.primary{background:#17324d;color:white;padding:11px 17px}.booking-main button:disabled{opacity:.5;cursor:wait}.booking-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.booking-panel,.booking-request{background:white;border:1px solid #d4dfda;border-radius:12px;padding:24px;margin:22px 0}.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.booking-form label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:.9rem}.booking-form input,.booking-form select,.booking-form textarea,.feed-url{font:inherit;min-width:0;width:100%;border:1px solid #adc5bf;border-radius:6px;padding:10px;min-height:44px}.booking-form textarea{min-height:75px}.booking-form .wide{grid-column:1/-1}.booking-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.booking-help{font-size:.88rem;color:#536c7d}.booking-rate{padding:12px;background:#edf5f0;border-radius:6px}.booking-error{color:#a5332c}.booking-request h3{margin-top:0}.booking-request .status{display:inline-block;padding:5px 9px;background:#eef4f2;border-radius:5px;font-weight:650;font-size:.82rem}.booking-request textarea{font:inherit;width:100%;max-width:650px;padding:10px;margin:7px 0 12px}.feed-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #d4dfda}.booking-main a{color:#176b6b}.feed-url{margin:10px 0}@media(max-width:999px){
 .booking-calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:transparent;border:0;box-shadow:none;overflow:visible}
 .booking-weekday,.booking-day--outside{display:none}
 .booking-mobile-weekday{display:inline}
 .booking-day{border:1px solid #c6d4e0;border-radius:10px;min-height:145px}
}
@media(max-width:700px){.booking-main{padding:18px}.booking-form{grid-template-columns:1fr}.booking-form .wide{grid-column:auto}.booking-panel,.booking-request{padding:18px}}
@media(max-width:540px){.booking-calendar{grid-template-columns:1fr}.booking-day{min-height:110px}.booking-main h1{font-size:2.2rem}}
