/* The Cancelled sticker (17 October 2026; event-cancelled.js says when).
   A cancelled card keeps its place and its shape. Everything under the
   sticker is softened, nothing on it can be tapped, and the sticker sits
   across the middle in the palette's berry with white type (5.8:1), big and
   bold enough to read at a glance on a phone. No hover state. */
.is-cancelled{position:relative!important}
.is-cancelled>:not(.lfh-cancelled-sticker){opacity:.5;filter:grayscale(.6)}
.is-cancelled a,.is-cancelled button{pointer-events:none}
.lfh-cancelled-sticker{
  position:absolute;z-index:3;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(-4deg);
  box-sizing:border-box;max-width:calc(100% - 24px);width:max-content;
  padding:10px 18px;border:3px solid #fff;border-radius:8px;
  background:var(--lfh-brand-berry,#a64f79);color:#fff;
  font:800 clamp(18px,4.8vw,22px)/1.2 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:.01em;text-align:center;white-space:normal;
  box-shadow:0 2px 0 rgba(70,73,76,.25),0 6px 18px rgba(70,73,76,.28);
  pointer-events:none;opacity:1;filter:none
}
/* A short row (a guide or seasonal list line) gets a smaller sticker. */
.is-cancelled.is-cancelled--row .lfh-cancelled-sticker{padding:6px 14px;font-size:clamp(15px,4vw,18px);border-width:2px}
/* A saved plan that was cancelled says so beside its name. */
.saved-event-cancelled,.sv-cancelled{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:6px;background:var(--lfh-brand-berry,#a64f79);color:#fff;font:700 13px/1.4 Inter,system-ui,sans-serif;vertical-align:middle}
/* On /saved a cancelled plan can still be removed. */
.sv-card.is-cancelled>.sv-actions{opacity:1;filter:none}
.sv-card.is-cancelled .sv-act-remove{pointer-events:auto}
.sv-card.is-cancelled .lfh-cancelled-sticker{top:40%}
