.calendar-lead,.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.booking-drawer{position:fixed;z-index:20;top:0;right:0;width:min(520px,94vw);height:100dvh;overflow-y:auto;background:#fff;padding:24px;box-shadow:-10px 0 35px rgba(0,0,0,.2);align-content:start;grid-template-columns:1fr}.booking-drawer .span{grid-column:auto}.booking-drawer label{align-content:start}.booking-drawer input,.booking-drawer select,.booking-drawer textarea{margin:0}.booking-drawer small{display:block;line-height:1.35;color:#666}.booking-drawer .drawer-header{position:sticky;top:-24px;background:#fff;padding:12px 0;z-index:2;border-bottom:1px solid var(--line)}.more-options{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.more-options summary{font-weight:700;cursor:pointer;padding:8px 0}.booking-drawer>.actions{justify-content:flex-end;align-items:center}
.booking-drawer .drawer-event-link{display:block;width:auto;min-height:34px;margin:7px 0 0;padding:5px 9px;border:1px solid var(--yellow);background:var(--yellow);color:var(--navy);font:800 13px/1.2 Barlow,sans-serif;text-decoration:none;cursor:pointer}.booking-drawer .drawer-event-link:hover{border-color:#d9a900;background:#ffda3e;color:var(--navy)}
.whats-on-entry{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:14px;border:1px solid #dbe4f5;border-left:3px solid var(--blue);border-radius:6px;background:#f8faff}.whats-on-entry-head,.whats-on-entry-span{grid-column:1/-1}.whats-on-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #dbe4f5}.whats-on-entry-head span{display:block;margin-bottom:3px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.whats-on-entry-head h3{margin:0;color:var(--navy)}.whats-on-entry-head p{margin:4px 0 0;color:#5f6c83;font-size:14px}.whats-on-entry-actions{display:flex;justify-content:flex-end;margin-top:8px;padding-top:12px;border-top:1px solid #dbe4f5}.whats-on-entry-actions .primary{min-width:180px}@media(max-width:700px){.whats-on-entry{grid-template-columns:1fr;padding:12px}.whats-on-entry-head{align-items:stretch;flex-direction:column}.whats-on-entry-head .secondary{align-self:flex-start}.whats-on-entry-actions .primary{width:100%}}
:root .whats-on-entry input[type="file"]{width:100%;box-sizing:border-box;border:1px solid #c9d7ef;border-radius:6px;padding:5px;background:#fff;color:#53617a;font:600 13px/1.25 "Barlow",Arial,sans-serif;cursor:pointer}:root .whats-on-entry input[type="file"]::file-selector-button{margin-right:10px;border:1px solid #2651b2;border-radius:4px;padding:7px 10px;background:#fff;color:#162d6e;font:800 12px/1 "Barlow",Arial,sans-serif;cursor:pointer;transition:background .15s ease,color .15s ease}:root .whats-on-entry input[type="file"]:hover::file-selector-button,:root .whats-on-entry input[type="file"]:focus-visible::file-selector-button{background:#2651b2;color:#fff}:root .whats-on-entry input[type="file"]:focus-visible{outline:3px solid rgba(245,194,0,.75);outline-offset:2px}
.booking-drawer.whats-on-mode>.simple-schedule,.booking-drawer.whats-on-mode>.booking-core,.booking-drawer.whats-on-mode>.recurrence,.booking-drawer.whats-on-mode>.more-options,.booking-drawer.whats-on-mode>.actions,.booking-drawer.whats-on-mode>label{display:none!important}
@media(max-width:700px){.calendar-lead{align-items:stretch;flex-direction:column}.booking-drawer{top:auto;bottom:0;left:0;width:100%;height:min(88dvh,760px);padding:18px;border-radius:16px 16px 0 0;box-shadow:0 -10px 35px rgba(0,0,0,.22)}.booking-drawer .drawer-header{top:-18px}}
.portal-tabs{border-bottom:0}.booking-drawer .recurrence{min-width:0;margin:0;width:100%;overflow:hidden}.booking-drawer .weekday-options{max-width:100%}.booking-drawer fieldset legend{padding:0 6px}.booking-drawer>*{min-width:0}
.time-grid{display:grid;grid-template-columns:1fr!important;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;max-height:520px;overflow-y:auto}.time-slot{display:block;width:100%;min-height:38px;text-align:left;padding:7px 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:linear-gradient(90deg,#f5f6f8 0 92px,#fff 92px);touch-action:pan-y}.time-slot:last-child{border-bottom:0}.time-slot.selected{background:linear-gradient(90deg,#e0ad00 0 92px,var(--yellow) 92px);font-weight:700}.time-slot.conflict{background:linear-gradient(90deg,#bbb 0 92px,#e2e3e6 92px);border-left:5px solid var(--danger);text-decoration:none}.calendar-picker:after{content:'Drag down through the timeline to select duration. Conflict rows cannot be selected.';display:block;color:#666;font-size:14px;margin-top:8px}
@media(max-width:700px){.time-grid{max-height:440px}.time-slot{min-height:48px}.calendar-picker:after{content:'Tap a start time, then tap an end time. Conflict rows cannot be selected.'}}
.time-slot.selected,.time-slot.preview{background:var(--blue)!important;color:#fff;border-left:5px solid var(--navy);font-weight:700;text-decoration:none}.time-slot[data-range-edge]::after{content:attr(data-range-edge);float:right;border:1px solid #fff;border-radius:3px;padding:1px 7px;font-size:12px;letter-spacing:.02em}.time-slot[aria-selected=true]{outline:2px solid var(--navy);outline-offset:-2px}#calendar-selection{position:sticky;bottom:0;z-index:3;background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-weight:700}#calendar-selection.range-conflict{border-color:var(--danger);color:var(--danger)}
.booking-drawer{border:0;box-shadow:-8px 0 28px rgba(22,45,110,.12);animation:drawer-in .18s ease-out}.booking-drawer .drawer-header{border-bottom:1px solid #ecece8}.booking-drawer .drawer-header h2{outline:none}.booking-drawer #close-booking{border-color:#b8bfd0;color:var(--navy)}.time-slot[data-range-edge]::after{border:0;background:rgba(255,255,255,.18);padding:2px 7px;font-weight:600}.time-slot[aria-selected=true]{outline:1px solid rgba(22,45,110,.75);outline-offset:-1px}@keyframes drawer-in{from{transform:translateX(16px);opacity:.7}to{transform:translateX(0);opacity:1}}
@media(max-width:700px){.booking-drawer{box-shadow:0 -8px 28px rgba(22,45,110,.13);animation:drawer-up .18s ease-out}@keyframes drawer-up{from{transform:translateY(14px);opacity:.7}to{transform:translateY(0);opacity:1}}}
.booking-drawer{border:0;border-left:2px solid rgba(38,81,178,.32);box-shadow:-5px 0 18px rgba(38,81,178,.07)}.booking-drawer .drawer-header{border-bottom:2px solid rgba(245,194,0,.55)}.booking-drawer #close-booking{border:1px solid rgba(38,81,178,.42);background:#fff;color:var(--blue)}.time-grid{border:1px solid #dbe4f5;box-shadow:0 3px 12px rgba(38,81,178,.05)}.time-slot{color:var(--navy);border-bottom-color:#e5ebf6;background:linear-gradient(90deg,#eef3fc 0 92px,#fff 92px)}.time-slot:hover:not(:disabled){background:linear-gradient(90deg,#e4ecfa 0 92px,#f9fbff 92px)}.time-slot.selected,.time-slot.preview{border-left:5px solid var(--yellow)!important;outline:1px solid rgba(38,81,178,.55)}.time-slot.conflict{background:linear-gradient(90deg,#f7eeee 0 92px,#fff8f7 92px);border-left:4px solid #c45a52;color:#71312d}.booking-drawer .recurrence{display:block!important;position:relative;clear:both;min-width:0;width:100%;margin:4px 0 0!important;padding:18px 16px 16px!important;border:0!important;border-left:3px solid var(--blue)!important;border-radius:6px;background:#f5f8ff;overflow:visible}.booking-drawer .recurrence legend{display:block;float:none;width:auto;max-width:100%;margin:0 0 10px;padding:0 4px;color:var(--navy);font-weight:700;background:#f5f8ff}.booking-drawer .recurrence>.check{clear:both;margin:0}.booking-drawer .recurrence #recurrence-options{clear:both;padding-top:12px}.booking-drawer>.actions{margin-top:2px;padding-top:8px;border-top:1px solid #e7ebf3}
@media(max-width:700px){.booking-drawer{border-left:0;border-top:2px solid rgba(38,81,178,.28);box-shadow:0 -5px 18px rgba(38,81,178,.08)}.booking-drawer .recurrence{padding:16px 14px!important}.booking-drawer>.actions{position:static}}
.booking-drawer .recurrence{padding:8px 0!important;margin:2px 0!important;border:0!important;border-radius:0;background:transparent;overflow:visible}.booking-drawer .recurrence>.check{min-height:44px;padding:8px 0;font-weight:700;color:var(--navy)}.booking-drawer .recurrence-help{display:block;margin:-2px 0 0 31px;color:#666}.booking-drawer .recurrence #recurrence-options{margin-top:12px;padding:14px;border-left:3px solid var(--blue);border-radius:0 6px 6px 0;background:#f5f8ff}.booking-drawer .recurrence #recurrence-options.hidden{display:none!important}@media(max-width:700px){.booking-drawer .recurrence{padding:6px 0!important}.booking-drawer .recurrence-help{margin-left:0;padding-left:31px}.booking-drawer .recurrence #recurrence-options{padding:12px}}
.booking-drawer{background:#fff!important;animation:drawer-in-solid .16s ease-out!important}@keyframes drawer-in-solid{from{transform:translateX(12px);opacity:1}to{transform:translateX(0);opacity:1}}@media(max-width:700px){.booking-drawer{animation:drawer-up-solid .16s ease-out!important}@keyframes drawer-up-solid{from{transform:translateY(10px);opacity:1}to{transform:translateY(0);opacity:1}}}
.booking-core .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:10px;row-gap:8px}.booking-core .grid>label:first-of-type{grid-column:1/-1}.booking-core .grid>p{grid-column:1/-1;padding:0;margin-top:-2px}@media(max-width:700px){.booking-core .grid{grid-template-columns:1fr;gap:8px}.booking-core .grid>label,.booking-core .grid>p{grid-column:1}}
.organisation-combobox{position:relative}.organisation-combobox>input{appearance:none;background-color:#fff;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232651b2' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.organisation-combobox>input.saved-selection{border-left:4px solid var(--yellow);background-color:#fffdf2}.organisation-suggestions{position:absolute;z-index:30;top:78px;left:0;right:0;display:grid;max-height:240px;overflow-y:auto;border:1px solid #cbd7ef;border-radius:0 0 6px 6px;background:#fff;box-shadow:0 8px 18px rgba(38,81,178,.12)}.organisation-suggestions button{min-height:42px;border:0;border-bottom:1px solid #edf1f8;border-radius:0;background:#fff;color:var(--navy);text-align:left;font-weight:600}.organisation-suggestions button:hover,.organisation-suggestions button[aria-selected=true]{background:#eef3fc;border-left:4px solid var(--yellow)}
.time-jump{display:flex;align-items:center;gap:10px;margin:10px 0}.time-jump span{white-space:nowrap}.time-jump select{max-width:230px}.time-grid{max-height:500px}.time-slot{height:20px;min-height:20px;padding:1px 14px;line-height:18px}.time-slot:nth-child(even){height:8px;min-height:8px;padding:0 14px;font-size:0;border-bottom:1px solid #dbe4f5;background:linear-gradient(90deg,#eef3fc 0 92px,#fbfcff 92px)}.time-slot:nth-child(even)::before{content:'';display:block;margin-left:88px;border-top:1px dashed #dbe4f5}.time-slot.selected,.time-slot.preview{background:#e7eefb!important;color:var(--navy)!important;border-left:3px solid var(--blue)!important;outline:1px solid rgba(38,81,178,.38)!important}.time-slot[data-range-edge]{border-left:5px solid var(--yellow)!important}.time-slot[data-range-edge]::after{background:var(--yellow);color:#17213d;border-radius:3px;font-size:11px;line-height:15px;padding:0 6px}.time-slot:nth-child(even)[data-range-edge]::after{position:relative;top:-4px}.time-slot.conflict{color:#71312d!important}.time-slot.conflict::after{content:'Unavailable';float:right;font-size:11px;font-weight:700}
@media(max-width:700px){.time-jump{display:grid;grid-template-columns:1fr}.time-jump select{max-width:none}.time-grid{max-height:410px}.time-slot,.time-slot:nth-child(even){height:44px;min-height:44px;padding:11px 14px;font-size:14px;line-height:20px;background:linear-gradient(90deg,#eef3fc 0 92px,#fff 92px)}.time-slot:nth-child(even)::before{display:none}.time-slot:nth-child(even)[data-range-edge]::after{top:0}}
.time-grid{height:490px;max-height:490px}@media(max-width:700px){.time-grid{height:410px;max-height:410px}}
.simple-schedule{padding:14px;border:1px solid #dbe4f5;border-left:3px solid var(--blue);border-radius:6px;background:#f8faff}.simple-schedule h3{margin-bottom:10px;color:var(--navy)}.simple-schedule .grid{gap:10px}.availability-result{margin-top:12px;padding:10px 12px;border-radius:5px;border:1px solid #c9d5eb;background:#fff;color:var(--navy);font-weight:700}.availability-result.available{border-left:4px solid var(--success);background:#edf8f2;color:#12633f}.availability-result.conflict{border-left:4px solid var(--danger);background:#fff3f1;color:#912018}@media(max-width:700px){.simple-schedule{padding:12px}.simple-schedule .grid{grid-template-columns:1fr}.simple-schedule select,.simple-schedule input{min-height:48px}}
.calendar-picker.hidden:after{content:none!important}.booking-drawer{position:static!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;max-height:none!important;margin:18px 0 0;padding:20px!important;overflow:visible!important;border:1px solid #dbe4f5!important;border-top:3px solid var(--blue)!important;border-radius:8px!important;background:#fff!important;box-shadow:0 5px 18px rgba(38,81,178,.06)!important;animation:inline-card-in .16s ease-out!important}.booking-drawer .drawer-header{position:static!important;top:auto!important;margin:-4px 0 2px;padding:0 0 12px;border-bottom:2px solid rgba(245,194,0,.5)}.booking-core{padding:14px;border:1px solid #e3e8f2;border-radius:6px;background:#fff}.booking-core h3{margin-bottom:10px;color:var(--navy)}.booking-core .grid{gap:10px}.booking-core p{margin:0;align-self:end;padding-bottom:10px}.booking-drawer>.actions{justify-content:flex-end}@keyframes inline-card-in{from{transform:translateY(-6px);opacity:.92}to{transform:translateY(0);opacity:1}}@media(max-width:700px){.booking-drawer{position:static!important;width:100%!important;height:auto!important;padding:14px!important;margin-top:14px;border-left:1px solid #dbe4f5!important;border-top:3px solid var(--blue)!important;border-radius:8px!important;box-shadow:0 4px 14px rgba(38,81,178,.06)!important}.booking-core,.simple-schedule{padding:12px}.booking-core .grid{grid-template-columns:1fr}.booking-core p{padding-bottom:0}.booking-drawer .drawer-header{top:auto!important}}
.booking-core .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:10px;row-gap:8px}.booking-core .grid>label:first-of-type{grid-column:1/-1}.booking-core .grid>p{grid-column:1/-1;margin-top:-2px;padding:0}@media(max-width:700px){.booking-core .grid{grid-template-columns:1fr;gap:8px}.booking-core .grid>label,.booking-core .grid>p{grid-column:1}}
.schedule-resource-choices{grid-column:1/-1;margin:0;padding:10px;border:1px solid #dbe4f5;border-radius:6px;background:#fff}.schedule-resource-choices legend{padding:0 5px;color:var(--navy);font-weight:800}.schedule-resource-choices p{margin:0 0 8px}.schedule-resource-choices>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.schedule-resource-choices label{display:flex;align-items:center;gap:7px;min-height:42px;padding:7px;border:1px solid #dfe5ef;border-radius:5px;background:#fafbfc;font-weight:700}.schedule-resource-choices input{width:18px;height:18px;min-height:0;margin:0}.schedule-resource-choices label:has(input:checked){border-color:var(--blue);background:#eef3fc;box-shadow:inset 0 -2px var(--yellow)}@media(max-width:700px){.schedule-resource-choices>div{grid-template-columns:1fr 1fr}.schedule-resource-choices label{min-height:48px}}@media(max-width:390px){.schedule-resource-choices>div{grid-template-columns:1fr}}
.booking-drawer .schedule-resource-choices{margin-top:8px;padding:16px 12px 12px}.booking-drawer .schedule-resource-choices legend{display:block;max-width:calc(100% - 24px);padding:0 10px;background:#fff;font-size:18px;line-height:1.25;white-space:normal}.booking-save-status{flex:1 1 220px;align-self:center;color:var(--navy);font-size:14px;font-weight:650}.booking-drawer[aria-busy=true] .booking-save-status:before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;border:2px solid #cbd7ef;border-top-color:var(--blue);border-radius:50%;vertical-align:-2px;animation:booking-save-spin .7s linear infinite}@keyframes booking-save-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-drawer[aria-busy=true] .booking-save-status:before{animation:none;border-top-color:var(--yellow)}}
.recurrence-end-settings{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;margin:14px 0;padding:12px;border:1px solid #d8e1f1;border-radius:6px;background:#fff}.recurrence-end-settings>label{min-width:0}.recurrence-end-settings>label:first-child{grid-column:1/-1}.recurrence-end-settings select,.recurrence-end-settings input{min-height:44px}.recurrence-end-settings .hidden{display:none!important}@media(max-width:520px){.recurrence-end-settings{grid-template-columns:1fr}.recurrence-end-settings>label{grid-column:1!important}}

/* Keep the "Courts and resources" title inside its frame instead of notched into the border. */
.booking-drawer .schedule-resource-choices{padding:14px 14px 12px}
.booking-drawer .schedule-resource-choices legend{float:left;width:100%;max-width:none;margin:0 0 4px;padding:0;background:none}
.booking-drawer .schedule-resource-choices legend+*{clear:both}
