/* The desktop wrapper must also participate in the mobile flex layout. */
@media(max-width:767px){
 body.mobile-calendar-active #calendar-panel>.desktop-calendar-layout{display:flex;flex-direction:column;flex:1 1 0;min-height:0;min-width:0;overflow:hidden}
 body.mobile-calendar-active #calendar-panel .desktop-calendar-layout>.calscroll{flex:1 1 0;min-height:0;min-width:0;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
}
#calendar .calcol{overflow:visible}
/* Absolute positioning adds no height to the heading or calendar rows. */
#calendar .calendar-session-markers{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 3px 0;pointer-events:none;z-index:7;background:transparent}
#calendar .calendar-session-marker{pointer-events:auto;touch-action:pan-x pan-y pinch-zoom;flex:0 0 auto;min-width:0;min-height:24px;height:24px;width:auto;padding:3px 9px;border:1px solid #ffffff88;border-radius:999px;color:#fff!important;text-shadow:0 1px 2px #000b,0 0 2px #0008;box-shadow:0 2px 5px #30271329;font-size:11px;font-weight:700;line-height:16px;white-space:nowrap;cursor:pointer}
.inline-client{margin:10px 0;padding:10px;border:1px solid #b8aa91;border-radius:10px}
.inline-client summary{cursor:pointer;font-weight:600}
.inline-client label{display:grid;gap:5px;margin-top:12px}

/* Override the earlier full-page calendar rules on larger screens. */
@media(min-width:768px){
 #calendar-panel .desktop-calendar-layout>.calscroll{height:clamp(420px,calc(100dvh - 300px),850px)!important;max-height:850px!important;overflow:auto!important}
 #calendar-panel #calendar .calcol,#calendar-panel #calendar .calcorner{position:sticky!important;top:0!important;z-index:5}
}
.site-version{white-space:nowrap;font-size:11px;opacity:.8}

/* Keep keyed markers mounted until the fade completes; disappearing pills cannot intercept input. */
#calendar .calendar-session-marker{position:absolute;left:50%;margin:0;opacity:0;transform:translate(-50%,4px);transition:opacity 900ms ease,transform 900ms ease,top 180ms ease}
#calendar .calendar-session-marker.is-visible{opacity:1;transform:translate(-50%,0)}
#calendar .calendar-session-marker.is-leaving{pointer-events:none;opacity:0}
#mobile-more-dialog::backdrop{background:rgba(25,22,16,.18);backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}
@media(prefers-reduced-motion:reduce){#calendar .calendar-session-marker{transition:none;transform:translate(-50%,0)}}

/* Only the time pill carries the livery; first visits retain an outer border. */
#calendar .calcell.session-livery{--livery:#d1d2cd;--livery-ink:#30332e;padding-left:0;padding-right:0}
#calendar .calcell.occupied.livery-first{--livery:#b83b3b;--livery-ink:#fff;border-left:1px solid #b83b3b;border-right:1px solid #b83b3b}
#calendar .calcell.livery-owner{--livery:#e5cb86;--livery-ink:#3e3217}
#calendar .calcell.livery-staff{--livery:#96b69c;--livery-ink:#203d29}
#calendar .calcell.occupied.livery-first.session-start{border-top:1px solid #b83b3b}
#calendar .calcell.occupied.livery-first.session-livery-end{border-bottom:1px solid #b83b3b}
#calendar .calcell.session-livery > .session-livery-heading{display:block;box-sizing:border-box;width:100%;padding:3px 5px;background:transparent!important;color:inherit;border:0;border-radius:0;box-shadow:none;line-height:1.2}
#calendar .calcell.session-livery > .calstaffnote{margin-left:5px;margin-right:5px}

#calendar .calcell.blocked,#calendar .calcell.calendar-cleaning{background:repeating-linear-gradient(135deg,#e5dfd3 0,#e5dfd3 7px,#cfc6b5 7px,#cfc6b5 9px);color:#514b40;border-bottom-color:#d8cfbe;opacity:1}
#calendar .calcell.calendar-cleaning{cursor:not-allowed}
#calendar .calcell.blocked strong{color:#514b40}
#calendar .calcell.blocked:not(.calendar-cleaning) .session-time-pill{background:#eee8dc;color:#514b40!important;box-shadow:none}
#calendar .calcell.blocked.session-hour-divider:not(.session-start){box-shadow:inset 0 1px 0 rgba(81,75,64,.12)}
#calendar .calendar-cleaning .session-time-pill{background:#625d52;color:white!important}

/* Name stays on the existing session background; only time is coloured. */
#calendar .calcell.session-livery > .session-livery-heading > strong{background:transparent!important;color:inherit!important}
#calendar .calcell.session-livery > .session-livery-heading > .session-time-pill{background:var(--livery)!important;color:var(--livery-ink)!important;border-radius:999px;box-shadow:0 1px 4px #0002}

/* Decorative only: no grid track, hit target, touch handler or scroll lock. */
#calendar .calendar-morning-watermarks{position:absolute;display:grid;grid-template-rows:repeat(3,1fr);pointer-events:none!important;user-select:none;-webkit-user-select:none;z-index:2;overflow:hidden}
#calendar .calendar-morning-watermark{display:flex;align-items:center;justify-content:center;min-height:0;pointer-events:none!important;color:rgba(139,110,54,.10);font-weight:800;line-height:1;letter-spacing:-.065em;white-space:nowrap}

#calendar .calendar-room-card-button{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;background:transparent;border-radius:50%;cursor:pointer;touch-action:manipulation}
#calendar .calendar-room-card-button .calendar-room-photo{margin:0}
#calendar .calendar-room-card-button:focus-visible{outline:2px solid #a88745;outline-offset:2px}
#room-details-dialog{box-sizing:border-box;width:min(600px,calc(100vw - 24px));max-height:88dvh;padding:20px;border:1px solid #cdb989;border-radius:20px;background:#faf7ef;color:#433822;overflow:auto;overscroll-behavior:contain}
#room-details-dialog::backdrop{background:rgba(25,22,16,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.room-details-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.room-details-heading h2{margin:0;font-size:24px}.room-details-location{margin:0 0 5px;font-size:12px;color:#887655}
.room-details-heading .close{flex:none;min-width:44px;min-height:44px}
.room-details-photo{display:block;width:100%;height:auto;max-height:42dvh;object-fit:contain;border-radius:12px;background:#27241e}
.room-details-equipment h3{font-size:18px;margin:20px 0 8px}.room-details-equipment dl{margin:0}
.room-details-equipment dl>div{padding:10px 0;border-bottom:1px solid #e5dccb}.room-details-equipment dt{font-size:12px;color:#887655;margin-bottom:4px}.room-details-equipment dd{font-size:15px;line-height:1.5;margin:0}
.room-details-contact{display:block;padding:14px;margin-top:18px;border-radius:12px;background:#eaddba;color:#48391e;text-align:center;text-decoration:none}

/* Calendar-only visual refresh: keep existing tracks, hit areas and all navigation. */
#calendar{border-color:#ded3bd;background:#faf7ef}
#calendar .calcell:not(.occupied):not(.blocked):not(.calendar-cleaning):not(.room-unavailable){border-right-color:#e5dccb;border-bottom-color:#e9e1d2}
#calendar .calcell.session-livery.session-start{border-top-left-radius:10px;border-top-right-radius:10px}
#calendar .calcell.session-livery.session-livery-end{border-bottom-left-radius:10px;border-bottom-right-radius:10px}
#calendar .calcell.session-livery > .session-livery-heading > .session-time-pill{box-shadow:none;font-weight:700}
#calendar .calcell.session-livery > .session-livery-heading.session-heading-short{display:flex}
#calendar .calcell .calendar-subscription-mark{display:inline!important;font-size:11px;color:inherit;white-space:nowrap}
#calendar .calcell.session-livery:focus-visible{outline:2px solid #594723;outline-offset:-2px}
