/* Mantle Schedule Bar. Fixed-position overlay: it never moves page content, so it adds no layout shift. */
.msb{position:fixed;left:0;right:0;bottom:var(--msb-offset,0);z-index:var(--msb-z,9990);font-family:Montserrat,Helvetica,Arial,Lucida,sans-serif;box-sizing:border-box}
.msb[hidden]{display:none}
.msb *,.msb *::before,.msb *::after{box-sizing:inherit}
.msb__inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--msb-bar-bg,#fff);padding:10px 44px calc(10px + env(safe-area-inset-bottom,0px)) 12px;box-shadow:0 -4px 18px rgba(0,0,0,.12)}
.msb__heading{margin:0;padding:0;font-size:14px;font-weight:600;line-height:1.3;color:var(--msb-btn-text,#4a625b);text-align:center}
.msb__actions{display:flex;gap:8px;width:100%}
.msb__btn{flex:1 1 0;display:block;min-height:48px;padding:13px 10px;border:2px solid var(--msb-btn-border,#4a625b);box-shadow:inset 0 0 0 2px #fff;background:var(--msb-btn-bg,#c3d5ce);color:var(--msb-btn-text,#4a625b);font-size:13px;font-weight:700;line-height:18px;letter-spacing:2px;text-transform:uppercase;text-align:center;text-decoration:none}
.msb__btn--secondary{flex:0 1 38%;background:var(--msb-bar-bg,#fff)}
.msb__btn:hover,.msb__btn:focus-visible{filter:brightness(.96);color:var(--msb-btn-text,#4a625b)}
.msb__btn:focus-visible,.msb__close:focus-visible{outline:2px solid var(--msb-btn-border,#4a625b);outline-offset:2px}
.msb__close{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:36px;height:44px;margin:0;padding:0;border:0;background:none;color:var(--msb-btn-text,#4a625b);font-size:26px;line-height:1;cursor:pointer}
.msb--slidein{left:auto;right:12px;bottom:calc(12px + var(--msb-offset,0px));max-width:340px;width:calc(100% - 24px)}
.msb--slidein .msb__inner{border-radius:6px;padding:14px 44px 14px 14px}
.msb--slidein .msb__actions{flex-direction:column}
.msb.msb--in{animation:msb-in .28s ease-out}
.msb--slidein.msb--in{animation-name:msb-slide}
@keyframes msb-in{from{transform:translateY(100%)}to{transform:none}}
@keyframes msb-slide{from{transform:translateX(110%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.msb.msb--in{animation:none}}
