/*
  KYMA monthly calendar enlargement
  Scope: schedule page monthly calendar + SELECTED DATE only.
*/

@media(min-width:901px){
  .schedulePage .calendarSection{
    width:min(1520px,calc(100vw - 64px));
    margin-left:50%;
    transform:translateX(-50%);
  }

  .schedulePage .calendarWorkspace{
    grid-template-columns:minmax(0,3.25fr) minmax(320px,1fr);
    gap:22px;
  }

  .schedulePage .calendarWeekdays span{
    padding:16px 8px;
    font-size:18px;
  }

  .schedulePage .calendarDay{
    --calendar-range-inset:13px;
    min-height:164px;
    padding:12px;
  }

  .schedulePage .dayNumber{
    width:34px;
    height:34px;
    font-size:19px;
  }

  .schedulePage .calendarEvents{
    gap:6px;
    margin-top:9px;
  }

  .schedulePage .calendarEvent{
    grid-template-columns:auto minmax(0,1fr);
    gap:7px;
    padding:7px 9px;
    border-radius:8px;
    font-size:17px;
    line-height:1.15;
  }

  .schedulePage .calendarEvent time{
    font-size:16px;
  }

  .schedulePage .calendarEvent strong{
    font-size:17px;
  }

  .schedulePage .calendarEvent.calendarEventNoPrefix{
    grid-template-columns:minmax(0,1fr);
  }

  .schedulePage .calendarMore{
    padding-left:5px;
    font-size:16px;
  }

  .schedulePage .dateDetail header{
    padding:26px;
  }

  .schedulePage .dateDetail header>span{
    font-size:17px;
  }

  .schedulePage .dateDetail header h3{
    margin:9px 0 6px;
    font-size:28px;
  }

  .schedulePage .dateDetail header p{
    font-size:16px;
  }

  .schedulePage .scheduleAddLink{
    margin-top:15px;
    padding:10px 12px;
    font-size:17px;
  }

  .schedulePage .detailEventList{
    gap:13px;
    padding:16px;
  }

  .schedulePage .detailEvent{
    padding:17px;
  }

  .schedulePage .detailEvent h4{
    font-size:20px;
  }

  .schedulePage .detailEvent p,
  .schedulePage .detailEmpty p{
    font-size:16px;
  }

  .schedulePage .dateDetail .typeBadge,
  .schedulePage .dateDetail .timeBadge,
  .schedulePage .dateDetail .featuredBadge{
    padding:7px 10px;
    font-size:16px;
  }

  .schedulePage .dateDetail .eventMembers span{
    font-size:16px;
  }

  .schedulePage .dateDetail .eventLink,
  .schedulePage .dateDetail .scheduleQuickEdit{
    font-size:16px;
  }
}

/* Calendar date-side status badges. */
.schedulePage .calendarBroadcastLabel[data-calendar-badge="broadcast"]{
  border-color:#b36ec4;
  background:#ead4ef;
  color:#2d2431;
  box-shadow:inset 0 0 0 1px rgba(151,79,170,.12);
}
.schedulePage .calendarBroadcastLabel[data-calendar-badge="off"]{
  border-color:#d88fa0;
  background:#f5c6cf;
  color:#2d2431;
}

@media(max-width:760px){
  .schedulePage .calendarWeekdays span{
    font-size:16px;
  }

  .schedulePage .dayNumber{
    font-size:16px;
  }

  .schedulePage .mobileEventMark b{
    font-size:15px;
  }
}

@media(max-width:520px){
  .schedulePage .calendarWeekdays span{
    font-size:15px;
  }

  .schedulePage .dayNumber{
    font-size:15px;
  }

  .schedulePage .mobileEventMark b{
    font-size:14px;
  }
}

/* =========================================================
   v2 — annual anniversary cell + date-number alignment
        + undated content sidebar
   ========================================================= */

/* All calendar date numbers use THEYellowRibbon and stay at the cell's top-left. */
.schedulePage .calendarDay .dayNumber{
  margin:0;
  justify-self:start;
  font-family:var(--kyma-font);
  font-weight:400;
}

/* The 42nd cell is replaced in JS with this year-anniversary cell. */
.schedulePage .annualAnniversaryCell{
  min-width:0;
  overflow:hidden;
  padding:12px;
  border:0;
  background:linear-gradient(145deg,#fbf2fd 0%,#fff 100%);
  box-shadow:inset 0 0 0 1px #d8aedf;
  color:#674a70;
  text-align:left;
  font-family:var(--kyma-font);
  font-weight:400;
}
.schedulePage .annualAnniversaryHead{
  display:grid;
  gap:2px;
  padding-bottom:7px;
  border-bottom:1px solid #e4d1e8;
}
.schedulePage .annualAnniversaryEyebrow{
  color:#a46caf;
  font-size:11px;
  letter-spacing:.12em;
}
.schedulePage .annualAnniversaryTitle{
  color:#5d4066;
  font-size:16px;
  line-height:1.2;
}
.schedulePage .annualAnniversaryList{
  display:grid;
  gap:5px;
  max-height:96px;
  margin-top:7px;
  padding-right:3px;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.schedulePage .annualAnniversaryItem{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:6px;
  align-items:baseline;
  min-width:0;
  font-size:14px;
  line-height:1.25;
}
.schedulePage .annualAnniversaryItem time{
  color:#95689f;
  font-family:var(--kyma-font);
  font-size:13px;
  font-weight:600;
}
.schedulePage .annualAnniversaryItem span{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
}
.schedulePage .annualAnniversaryEmpty{
  margin:8px 0 0;
  color:#9c879f;
  font-size:13px;
  line-height:1.35;
}

/* SELECTED DATE + UNSCHEDULED share one sidebar column. */
.schedulePage .calendarSidebar{
  display:grid;
  min-width:0;
  gap:18px;
  align-content:start;
}
.schedulePage .calendarSidebar .dateDetail{
  position:static;
  top:auto;
  width:100%;
}
.schedulePage .undatedPanel{
  width:100%;
  overflow:hidden;
  border:1px solid var(--orchid-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 16px 45px #60416c0c;
  font-family:var(--kyma-font);
  font-weight:400;
}
.schedulePage .undatedPanelHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:22px;
  border-bottom:1px solid #eaddeb;
  background:var(--orchid-soft);
}
.schedulePage .undatedPanelHead>div{
  min-width:0;
}
.schedulePage .undatedPanelHead span{
  display:block;
  color:#a46caf;
  font-size:16px;
  letter-spacing:.16em;
}
.schedulePage .undatedPanelHead h3{
  margin:7px 0 0;
  color:#5d4066;
  font-size:24px;
  line-height:1.2;
}
.schedulePage .undatedAddButton{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 10px;
  border:1px solid #c790d2;
  border-radius:9px;
  background:#fff;
  color:#754a7e;
  font-family:var(--kyma-font);
  font-size:16px;
  font-weight:400;
}
.schedulePage .undatedAddButton:hover{
  background:#f2e1f5;
}
.schedulePage .undatedPanelBody{
  padding:15px;
}
.schedulePage .undatedList{
  display:grid;
  gap:9px;
}
.schedulePage .undatedItem{
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid #e4d6e6;
  border-radius:12px;
  background:#fff;
}
.schedulePage .undatedItemTitle{
  min-width:0;
  flex:1;
  overflow:hidden;
  color:#59465e;
  font-size:20px;
  line-height:1.35;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  text-overflow:clip;
  white-space:normal;
}
.schedulePage .undatedEditButton{
  flex:0 0 auto;
  min-height:34px;
  padding:7px 9px;
  border:1px solid #d6b2dc;
  border-radius:8px;
  background:var(--orchid-soft);
  color:#76517e;
  font-family:var(--kyma-font);
  font-size:15px;
  font-weight:400;
}
.schedulePage .undatedEmpty{
  margin:0;
  padding:28px 12px;
  color:#9b879f;
  font-size:16px;
  line-height:1.55;
  text-align:center;
}
.schedulePage .undatedStatus{
  min-height:20px;
  margin:10px 2px 0;
  color:#8a748e;
  font-family:var(--kyma-font);
  font-size:13px;
  line-height:1.45;
}
.schedulePage .undatedStatus.error{
  color:#a9506a;
}

/* Simple schedule-page-only editor for undated content. */
.undatedEditorOverlay{
  position:fixed;
  z-index:380;
  inset:0;
  display:block;
  padding:0;
  background:#2d18355c;
  backdrop-filter:blur(8px);
}
.undatedEditorOverlay[hidden]{
  display:none!important;
}
.undatedEditorPanel{
  position:absolute;
  top:0;
  right:0;
  width:min(480px,100%);
  height:100%;
  overflow-y:auto;
  padding:26px;
  border:0;
  border-left:1px solid #b58abe63;
  border-radius:0;
  background:#fcf8fd;
  box-shadow:-24px 0 70px #2c163d3a;
  font-family:var(--kyma-font);
  font-weight:400;
  animation:undatedDrawerIn .3s cubic-bezier(.16,.62,.24,1);
}
@keyframes undatedDrawerIn{
  from{transform:translateX(34px);opacity:.82}
  to{transform:translateX(0);opacity:1}
}
@media(max-width:760px){
  .undatedEditorPanel{
    top:auto;
    bottom:0;
    width:100%;
    height:min(90svh,820px);
    padding:20px 18px 32px;
    border-top:1px solid #b58abe63;
    border-left:0;
    border-radius:20px 20px 0 0;
    animation-name:undatedDrawerUp;
  }
  @keyframes undatedDrawerUp{
    from{transform:translateY(35px);opacity:.82}
    to{transform:translateY(0);opacity:1}
  }
}

.undatedEditorPanel>span{
  color:#a46caf;
  font-size:15px;
  letter-spacing:.16em;
}
.undatedEditorPanel h3{
  margin:7px 0 18px;
  color:#533b59;
  font-size:24px;
}
.undatedEditorForm{
  display:grid;
  gap:14px;
}
.undatedEditorForm label{
  display:grid;
  gap:7px;
  color:#715576;
  font-size:16px;
}
.undatedEditorForm input{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #cfb4d4;
  border-radius:10px;
  background:#fff;
  color:#3f3143;
  font-family:var(--kyma-font);
  font-size:16px;
  outline:none;
}
.undatedEditorForm input:focus{
  border-color:#b276c4;
  box-shadow:0 0 0 3px #c895d71f;
}
.undatedEditorActions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-top:3px;
}
.undatedEditorActions button{
  min-height:40px;
  padding:9px 12px;
  border:1px solid #d2b6d8;
  border-radius:9px;
  background:#fff;
  color:#76517e;
  font-family:var(--kyma-font);
  font-size:16px;
  font-weight:400;
}
.undatedEditorActions .undatedSave{
  border-color:#9f68ad;
  background:#8d5a99;
  color:#fff;
}
.undatedEditorActions .undatedDelete{
  margin-right:auto;
  border-color:#e2b6c2;
  color:#a9506a;
}

.undatedManagerView{display:grid;gap:12px}
.undatedManagerView[hidden]{display:none}
.undatedManagerAdd{justify-self:start;min-height:40px;padding:9px 12px;border:1px solid #c790d2;border-radius:9px;background:var(--orchid-soft);color:#754a7e;font-family:var(--kyma-font);font-size:15px;font-weight:400}
.undatedManagerList{display:grid;gap:8px;max-height:min(56vh,520px);padding:8px;border:1px solid #e4d6e6;border-radius:12px;background:#fff9;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.undatedManagerItem{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #e4d6e6;border-radius:10px;background:#fff}
.undatedManagerItem strong{min-width:0;overflow:hidden;color:#59465e;font-size:16px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.undatedManagerItem button{min-height:36px;padding:7px 10px;border:1px solid #d6b2dc;border-radius:8px;background:var(--orchid-soft);color:#76517e;font-family:var(--kyma-font);font-size:14px}
.undatedManagerEmpty{margin:0;padding:18px;color:#9b879f;font-size:14px;text-align:center}

.undatedEditorError{
  min-height:20px;
  margin:0;
  color:#a9506a;
  font-family:var(--kyma-font);
  font-size:14px;
  line-height:1.45;
}

@media(min-width:901px){
  .schedulePage .calendarSidebar{
    position:sticky;
    top:106px;
  }
  .schedulePage .calendarSidebar .dateDetail,
  .schedulePage .undatedPanel{
    min-height:280px;
  }
}

@media(max-width:760px){
  .schedulePage .calendarSidebar{
    position:static;
    width:100%;
    gap:18px;
  }
  .schedulePage .annualAnniversaryCell{
    min-height:61px;
    padding:5px;
  }
  .schedulePage .annualAnniversaryHead{
    gap:0;
    padding-bottom:3px;
  }
  .schedulePage .annualAnniversaryEyebrow{
    display:none;
  }
  .schedulePage .annualAnniversaryTitle{
    font-size:11px;
  }
  .schedulePage .annualAnniversaryList{
    gap:2px;
    max-height:28px;
    margin-top:3px;
  }
  .schedulePage .annualAnniversaryItem{
    grid-template-columns:31px minmax(0,1fr);
    gap:3px;
    font-size:9px;
    line-height:1.05;
  }
  .schedulePage .annualAnniversaryItem time{
    font-size:9px;
  }
  .schedulePage .annualAnniversaryEmpty{
    margin-top:4px;
    font-size:9px;
  }
  .schedulePage .undatedPanelHead{
    padding:20px;
  }
  .schedulePage .undatedPanelHead h3{
    font-size:22px;
  }
  .schedulePage .undatedItemTitle{
    font-size:18px;
  }
}

@media(max-width:520px){
  .schedulePage .annualAnniversaryCell{
    min-height:54px;
  }
  .schedulePage .undatedPanelHead{
    padding:18px;
  }
  .schedulePage .undatedPanelHead span{
    font-size:15px;
  }
  .schedulePage .undatedPanelHead h3{
    font-size:21px;
  }
  .schedulePage .undatedItemTitle{
    font-size:18px;
  }
}

/* =========================================================
   v3 — calendar sidebar height sync + exact day-number inset
   ========================================================= */

/* Use the existing relative calendarDay as the positioning context. */
.schedulePage .calendarDay .dayNumber{
  position:absolute;
  top:12px;
  left:12px;
  margin:0;
  justify-self:start;
  font-family:var(--kyma-font);
  font-weight:400;
}

/* Keep event pills below the absolutely positioned date number. */
.schedulePage .calendarEvents{
  margin-top:42px;
}

/* While the sidebar is a right-hand column, cap it to the measured calendarCard height.
   overflow:auto only shows a scrollbar when the combined content actually exceeds that height. */
@media(min-width:761px){
  .schedulePage .calendarSidebar{
    max-height:var(--calendar-card-height);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}

/* Existing mobile stack remains unconstrained and non-scrollable. */
@media(max-width:760px){
  .schedulePage .calendarSidebar{
    max-height:none;
    overflow:visible;
    overscroll-behavior:auto;
  }

  .schedulePage .calendarDay .dayNumber{
    top:5px;
    left:5px;
  }
}

/* =========================================================
   v4 — fixed SELECTED DATE + scrollable UNSCHEDULED list
        + UPCOMING left alignment
   ========================================================= */

@media(min-width:761px){
  /* The whole sidebar no longer scrolls. It is exactly the measured calendarCard height. */
  .schedulePage .calendarSidebar{
    grid-template-rows:auto minmax(0,1fr);
    height:var(--calendar-card-height);
    max-height:none;
    align-content:stretch;
    overflow:visible;
    overscroll-behavior:auto;
  }

  /* Only the UNSCHEDULED panel uses the remaining sidebar row. */
  .schedulePage .undatedPanel{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
  }

  .schedulePage .undatedPanelHead{
    flex:0 0 auto;
  }

  .schedulePage .undatedPanelBody{
    display:flex;
    min-height:0;
    flex:1 1 auto;
    flex-direction:column;
    overflow:hidden;
  }

  /* Only the content list scrolls; header and status remain fixed. */
  .schedulePage .undatedList{
    min-height:0;
    flex:1 1 auto;
    overflow-y:auto;
    overscroll-behavior:auto;
  }

  .schedulePage .undatedStatus{
    flex:0 0 auto;
  }
}

@media(min-width:901px){
  /* Existing min-height:280px would prevent the UNSCHEDULED panel from fitting
     into the measured remaining space, so only this panel's minimum is released. */
  .schedulePage .calendarSidebar .undatedPanel{
    min-height:0;
  }

  /* Keep the existing max-width/card layout; change only the section's left start. */
  .schedulePage .upcomingSection{
    margin-left:var(--calendar-card-left-offset,0px);
  }
}

@media(max-width:760px){
  /* Existing mobile stack remains natural: no sidebar height cap and no inner list scroll. */
  .schedulePage .calendarSidebar{
    height:auto;
    max-height:none;
    overflow:visible;
  }

  .schedulePage .undatedPanel{
    display:block;
    min-height:0;
    overflow:hidden;
  }

  .schedulePage .undatedPanelBody{
    display:block;
    overflow:visible;
  }

  .schedulePage .undatedList{
    overflow:visible;
  }
}


@media(min-width:901px){
  .schedulePage .calendarEventRangeStart{
    border-radius:8px 0 0 8px;
  }
  .schedulePage .calendarEventRangeMiddle{
    grid-template-columns:minmax(0,1fr);
    border-radius:0;
  }
  .schedulePage .calendarEventRangeEnd{
    grid-template-columns:minmax(0,1fr);
    border-radius:0 8px 8px 0;
  }
}
/* =========================================================
   screenshot capture fix
   ========================================================= */

@media(min-width:901px){

  #schedule-capture-area{
    align-items:start;
  }

  #schedule-capture-area .calendarSidebar{
    height:auto;
    max-height:none;
    overflow:visible;
  }

  #schedule-capture-area .dateDetail{
    height:auto;
    min-height:0;
  }

  #schedule-capture-area .undatedPanel{
    height:auto;
    min-height:0;
  }

}


/* =========================================================
   v5 — schedule overview + broadcast day-header labels
   ========================================================= */
.schedulePage .scheduleOverview{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
  margin-top:28px;
}
.schedulePage .scheduleOverview .nextEventSection,
.schedulePage .scheduleOverview .upcomingSection{
  min-width:0;
  margin:0;
}
.schedulePage .scheduleOverview .nextEventSection,
.schedulePage .scheduleOverview #nextEventCard,
.schedulePage .scheduleOverview .nextEventCard{
  height:100%;
}
.schedulePage .scheduleOverview .upcomingSection{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}
.schedulePage .scheduleOverview .upcomingSection .sectionLabel{
  justify-content:flex-end;
  margin:0 0 10px;
}
.schedulePage .scheduleOverview .upcomingList{
  max-height:300px;
}
.schedulePage .calendarBroadcasts{
  position:absolute;
  z-index:2;
  top:15px;
  left:56px;
  right:10px;
  display:flex;
  min-width:0;
  gap:7px;
  overflow:hidden;
  color:#6f4a78;
  font-family:var(--kyma-font);
  font-size:16px;
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
}
.schedulePage .calendarBroadcastLabel{
  display:flex;
  align-items:center;
  min-width:0;
  min-height:28px;
  gap:4px;
  padding:3px 8px;
  overflow:hidden;
  border:1px solid rgba(178,118,196,.48);
  border-radius:8px;
  background:var(--orchid-soft);
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedulePage .calendarBroadcastLabel[data-schedule-type="휴방"]{background:#f5c6cf;color:#963f53}
.schedulePage .calendarBroadcastLabel[data-schedule-type="합방"]{background:#cfe9e2;color:#3d7069}
.schedulePage .calendarBroadcastLabel[data-schedule-type="기념일"]{background:#f6e2bd;color:#806238}
.schedulePage .calendarBroadcastLabel[data-schedule-type="이벤트"]{background:#f3cadb;color:#8f4d69}
.schedulePage .calendarBroadcastLabel time,
.schedulePage .calendarBroadcastLabel strong{
  flex:0 0 auto;
  font-weight:600;
}
.schedulePage .calendarBroadcastLabel strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media(min-width:901px){
  .schedulePage .scheduleOverview{
    width:min(1520px,calc(100vw - 64px));
    margin-left:50%;
    transform:translateX(-50%);
  }
}
@media(max-width:900px){
  .schedulePage .scheduleOverview{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .schedulePage .calendarBroadcasts{
    top:12px;
    left:46px;
    font-size:12px;
  }
  .schedulePage .calendarBroadcastLabel{
    min-height:24px;
    padding:2px 6px;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .scheduleOverview .upcomingSection .sectionLabel{
    justify-content:flex-start;
    margin-top:8px;
  }
  .schedulePage .scheduleOverview .upcomingList{
    max-height:70svh;
  }
  .schedulePage .calendarBroadcasts{
    top:8px;
    left:35px;
    right:4px;
    gap:4px;
    font-size:9px;
  }
}

/* v6 — clearer schedule surfaces */
.schedulePage .nextEventCard,
.schedulePage .dateDetail,
.schedulePage .undatedPanel,
.schedulePage .calendarCard{
  border-width:2px;
  border-color:#d6b1dd;
}
.schedulePage .undatedPanel{
  background:#fff;
}
.schedulePage .undatedPanelHead{
  background:var(--orchid-soft);
}
.schedulePage .undatedPanelBody{
  background:#fff;
}
.schedulePage .scheduleOverview .upcomingSection{
  height:100%;
  padding:16px;
  overflow:hidden;
  border:2px solid #d6b1dd;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 50px #6d427512;
}
.schedulePage .scheduleOverview .upcomingSection .sectionLabel{
  justify-content:flex-start;
  padding-bottom:10px;
  border-bottom:1px solid #e4d1e8;
}
.schedulePage .scheduleOverview .upcomingList{
  min-height:0;
}
.schedulePage .upcomingCard{
  border-width:2px;
  border-color:#dfc9e3;
}


/* v7 — three equal schedule summary panels */
.schedulePage .scheduleOverview{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.schedulePage .scheduleOverview .nextEventSection,
.schedulePage .scheduleOverview .upcomingSection{
  min-width:0;
  width:100%;
  height:100%;
}
.schedulePage .scheduleOverview .upcomingCard,
.schedulePage .scheduleOverview .upcomingCard.hasImage,
.schedulePage .scheduleOverview .upcomingCard.noImage{
  grid-template-columns:58px 92px minmax(0,1fr);
  grid-template-areas:
    "dday date copy"
    "actions actions actions";
  gap:8px 12px;
}
.schedulePage .scheduleOverview .upcomingCard.hasImage{
  grid-template-columns:58px 58px minmax(0,1fr);
  grid-template-areas:
    "thumb dday date"
    "thumb copy copy"
    "actions actions actions";
}
.schedulePage .scheduleOverview .upcomingThumb{
  width:58px;
  height:58px;
}
.schedulePage .scheduleOverview .upcomingActions{
  justify-content:flex-start;
}
@media(max-width:900px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
}

.schedulePage .scheduleOverview .upcomingCard,
.schedulePage .scheduleOverview .upcomingCard.hasImage,
.schedulePage .scheduleOverview .upcomingCard.noImage{
  min-height:116px;
}
@media(max-width:760px){
  .schedulePage .scheduleOverview .upcomingCard,
  .schedulePage .scheduleOverview .upcomingCard.hasImage{
    grid-template-columns:64px auto minmax(0,1fr);
    grid-template-areas:
      "thumb dday date"
      "thumb copy copy"
      "actions actions actions";
    min-height:0;
    gap:9px 12px;
  }
  .schedulePage .scheduleOverview .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "dday date"
      "copy copy"
      "actions actions";
  }
}
@media(max-width:520px){
  .schedulePage .scheduleOverview .upcomingCard,
  .schedulePage .scheduleOverview .upcomingCard.hasImage{
    grid-template-columns:58px auto minmax(0,1fr);
  }
  .schedulePage .scheduleOverview .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr);
  }
}


/* v8 — compact recent/off panels and expanded upcoming panel */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,4fr);
}
.schedulePage .scheduleOverview .nextEventCopy{
  padding:20px;
}
.schedulePage .scheduleOverview .nextEventCopy h3{
  margin-top:16px;
  font-size:26px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.schedulePage .scheduleOverview .nextEventCopy .eventMeta{
  margin-top:12px;
  font-size:16px;
}
.schedulePage .scheduleOverview .nextEventCopy .eventMembers{
  gap:7px;
  margin-top:14px;
}
.schedulePage .scheduleOverview .nextEventCopy .eventMembers span,
.schedulePage .scheduleOverview .nextEventCopy>p{
  font-size:14px;
  line-height:1.55;
}
.schedulePage .scheduleOverview .nextEventCard.hasImage,
.schedulePage .scheduleOverview .nextEventCard.featured.hasImage{
  grid-template-columns:1fr;
}
.schedulePage .scheduleOverview .nextEventImage{
  min-height:0;
  height:120px;
}
.schedulePage .monthlyOffSection .monthlyOffCard{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:
    "date"
    "copy";
  min-height:0;
  gap:7px;
  padding:15px;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingDate strong{
  font-size:18px;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy{
  display:block;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy h3{
  margin:0;
  font-size:17px;
  line-height:1.4;
  overflow-wrap:anywhere;
  text-overflow:clip;
  white-space:normal;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.noImage{
  grid-template-columns:70px 64px 116px minmax(220px,1fr) auto;
  grid-template-areas:". dday date copy actions";
  min-height:92px;
  gap:8px 18px;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.hasImage{
  grid-template-areas:"thumb dday date copy actions";
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.featured{
  border-color:#b668c5;
  background:linear-gradient(100deg,#fff 0%,#f9e9fc 58%,#edcef3 100%);
  box-shadow:inset 5px 0 #b15fc0,0 14px 34px #7b3f861f;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.featured .featuredBadge{
  padding:8px 12px;
  border-color:#9f4eae;
  background:#b15fc0;
  color:#fff;
  font-size:12px;
  box-shadow:0 5px 12px #74357f26;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingDate strong{
  font-size:17px;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingDate small{
  font-size:14px;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCopy h3{
  font-size:18px;
}
.schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCopy p{
  font-size:14px;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard,
  .schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.hasImage{
    grid-template-columns:64px auto minmax(0,1fr);
    grid-template-areas:
      "thumb dday date"
      "thumb copy copy"
      "actions actions actions";
    min-height:0;
    gap:9px 12px;
  }
  .schedulePage .scheduleOverview>.upcomingSection:not(.monthlyOffSection) .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "dday date"
      "copy copy"
      "actions actions";
  }
}


/* v9 — today, anniversary, monthly off and upcoming overview */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,3fr);
}
.schedulePage .scheduleOverview>.todayScheduleSection,
.schedulePage .scheduleOverview>.upcomingSection{
  min-width:0;
  height:100%;
}
.schedulePage .scheduleOverview>.todayScheduleSection{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  padding:16px;
  overflow:hidden;
  border:2px solid #d7a2df;
  border-radius:20px;
  background:linear-gradient(155deg,#fff 0%,#fffafd 100%);
  box-shadow:0 16px 38px #6f527117;
}
.schedulePage .scheduleOverview .sectionLabel{
  position:relative;
  min-height:40px;
  padding:4px 8px 12px 18px;
  border-bottom:1px solid #ead5ed;
}
.schedulePage .scheduleOverview .sectionLabel::before{
  content:"";
  position:absolute;
  left:0;
  top:5px;
  width:7px;
  height:23px;
  border-radius:999px;
  background:linear-gradient(180deg,#b45fc4,#df9ce8);
  box-shadow:0 4px 10px #9f4caf38;
}
.schedulePage .scheduleOverview .sectionLabel h2{
  margin:0;
  color:#49314d;
  font-size:19px;
  line-height:1.35;
  letter-spacing:.01em;
}
.schedulePage .todayScheduleSection .sectionLabel::before{
  background:linear-gradient(180deg,#8b6ec8,#cf86dc);
}
.schedulePage .anniversarySection .sectionLabel::before{
  background:linear-gradient(180deg,#ff9db9,#f4c34f);
}
.schedulePage .monthlyOffSection .sectionLabel::before{
  background:linear-gradient(180deg,#e58aa7,#f2bcc8);
}
.schedulePage .upcomingScheduleSection .sectionLabel::before{
  background:linear-gradient(180deg,#6fa9d7,#b56ac5);
}
.schedulePage #nextEventCard,
.schedulePage #upcomingAnniversary{
  min-height:0;
  overflow:auto;
  padding-top:10px;
}
.schedulePage .todayEventList{
  display:grid;
  gap:10px;
}
.schedulePage .todayEventCard{
  position:relative;
  padding:15px;
  overflow:hidden;
  border:1px solid #e4c8e8;
  border-radius:16px;
  background:linear-gradient(145deg,#fff 0%,#fbf2fc 100%);
}
.schedulePage .todayEventCard.featured{
  border-color:#bd6ac9;
  background:linear-gradient(145deg,#fff 0%,#f4ddf8 100%);
  box-shadow:inset 4px 0 #b15fc0,0 10px 24px #82458b18;
}
.schedulePage .todayEventBadges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:9px;
}
.schedulePage .todayEventBadges:empty{
  display:none;
}
.schedulePage .todayEventCard h3{
  margin:0;
  color:#35233a;
  font-size:21px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.schedulePage .todayEventTime{
  display:block;
  margin-top:8px;
  color:#714f77;
  font-size:18px;
  font-weight:900;
}
.schedulePage .todayEventDescription{
  margin:9px 0 0;
  color:#674d6b;
  font-size:16px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.schedulePage .todayEventCard .eventMembers{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.schedulePage .todayEventCard .eventMembers span{
  font-size:15px;
}
.schedulePage .todayEventCard .eventLink{
  margin-top:10px;
}
.schedulePage .todayScheduleEmpty,
.schedulePage .anniversaryEmpty{
  height:100%;
  min-height:150px;
}
.schedulePage .anniversarySection{
  background:linear-gradient(155deg,#fffdfd 0%,#fff7fb 56%,#fffbea 100%);
}
.schedulePage .anniversaryCard{
  position:relative;
  isolation:isolate;
  min-height:210px;
  padding:20px 16px;
  overflow:hidden;
  border:1px solid #efb7ca;
  border-radius:18px;
  background:
    radial-gradient(circle at 16% 15%,#fff 0 4px,transparent 5px),
    radial-gradient(circle at 82% 24%,#fff 0 3px,transparent 4px),
    linear-gradient(145deg,#fff0f7 0%,#f7e4ff 55%,#fff2c9 100%);
  box-shadow:0 14px 30px #bf779422;
  text-align:center;
}
.schedulePage .anniversaryCard::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-70% -40%;
  background:linear-gradient(110deg,transparent 40%,#ffffff9e 50%,transparent 60%);
  transform:translateX(-38%) rotate(12deg);
  animation:anniversaryShimmer 4.8s ease-in-out infinite;
}
.schedulePage .anniversarySparkles{
  position:absolute;
  z-index:-1;
  inset:0;
  background:
    radial-gradient(circle at 18% 72%,#dd89ec 0 3px,transparent 4px),
    radial-gradient(circle at 78% 65%,#f2b84b 0 3px,transparent 4px),
    radial-gradient(circle at 67% 18%,#f08ead 0 2px,transparent 3px);
  animation:anniversarySparkle 2.8s ease-in-out infinite alternate;
}
.schedulePage .anniversaryDday{
  display:inline-flex;
  min-width:76px;
  min-height:36px;
  align-items:center;
  justify-content:center;
  padding:7px 13px;
  border:1px solid #df7ca1;
  border-radius:999px;
  background:linear-gradient(135deg,#d8619b,#aa62c7);
  box-shadow:0 8px 18px #a7558d38;
  color:#fff;
  font-size:17px;
  font-weight:900;
}
.schedulePage .anniversaryCard time{
  display:block;
  margin-top:15px;
  color:#76527b;
  font-size:16px;
  font-weight:900;
}
.schedulePage .anniversaryCard h3{
  margin:7px 0 0;
  color:#432b49;
  font-size:21px;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.schedulePage .anniversaryCard p{
  margin:9px 0 0;
  color:#765d78;
  font-size:15px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
@keyframes anniversaryShimmer{
  0%,38%{transform:translateX(-48%) rotate(12deg)}
  72%,100%{transform:translateX(48%) rotate(12deg)}
}
@keyframes anniversarySparkle{
  from{opacity:.45;transform:scale(.98)}
  to{opacity:1;transform:scale(1.035)}
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingDate strong{
  font-size:16px;
  line-height:1.4;
  white-space:normal;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy h3{
  font-size:18px;
}
.schedulePage .upcomingScheduleSection .upcomingCard,
.schedulePage .upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:58px 98px minmax(0,1fr) auto;
  grid-template-areas:"dday date copy actions";
  min-height:100px;
  gap:8px 13px;
  padding:13px 14px;
}
.schedulePage .upcomingScheduleSection .upcomingThumb{
  display:none;
}
.schedulePage .upcomingScheduleSection .upcomingCopy{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:4px 8px;
  min-width:0;
}
.schedulePage .upcomingScheduleSection .upcomingCopy h3{
  min-width:0;
  font-size:19px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.schedulePage .upcomingScheduleSection .upcomingDescription,
.schedulePage .upcomingScheduleSection .upcomingMembers{
  grid-column:1/-1;
  max-width:none;
  margin:2px 0 0;
  color:#6d526f;
  font-size:16px;
  line-height:1.4;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
}
.schedulePage .upcomingScheduleSection .upcomingMembers{
  color:#9b609f;
  font-size:17px;
  font-weight:900;
}
.schedulePage .upcomingScheduleSection .upcomingActions{
  gap:7px;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
  .schedulePage .upcomingScheduleSection .upcomingCard,
  .schedulePage .upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .upcomingScheduleSection .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "dday date"
      "copy copy"
      "actions actions";
    min-height:0;
  }
  .schedulePage .anniversaryCard{
    min-height:180px;
  }
}
@media(prefers-reduced-motion:reduce){
  .schedulePage .anniversaryCard::before,
  .schedulePage .anniversarySparkles{
    animation:none;
  }
}


/* v10 — keep schedule detail text readable over legacy card rules */
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingCopy .upcomingDescription{
  font-size:16px;
}
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingCopy .upcomingMembers{
  font-size:17px;
}


.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingCopy p.upcomingDescription{
  font-size:16px !important;
}
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingCopy p.upcomingMembers{
  font-size:17px !important;
}


/* v11 — wider anniversary poster and narrower future schedule */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr) minmax(0,2fr);
}
.schedulePage .anniversarySection{
  background:#fff;
}
.schedulePage .anniversaryCard,
.schedulePage .anniversaryCard.featured{
  display:grid;
  grid-template-columns:minmax(132px,.85fr) minmax(0,1fr);
  gap:16px;
  min-height:0;
  padding:10px;
  overflow:hidden;
  border:1px solid #e6cee9;
  border-radius:16px;
  background:#fff;
  box-shadow:none;
  text-align:left;
}
.schedulePage .anniversaryCard::before{
  content:none;
  animation:none;
}
.schedulePage .anniversaryPoster{
  width:100%;
  max-height:292px;
  aspect-ratio:2/3;
  overflow:hidden;
  align-self:center;
  border:1px solid #dcb7e2;
  border-radius:12px;
  background:#f8f1fa;
}
.schedulePage .anniversaryPoster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.schedulePage .anniversaryPosterEmpty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  border-style:dashed;
  color:#a575ac;
  text-align:center;
}
.schedulePage .anniversaryPosterEmpty strong{
  font-size:19px;
  letter-spacing:.12em;
}
.schedulePage .anniversaryPosterEmpty span{
  font-size:13px;
  line-height:1.5;
}
.schedulePage .anniversaryInfo{
  min-width:0;
  align-self:center;
}
.schedulePage .anniversaryDday{
  min-width:72px;
  min-height:34px;
  padding:6px 12px;
  font-size:16px;
}
.schedulePage .anniversaryCard time{
  margin-top:14px;
  font-size:16px;
}
.schedulePage .anniversaryCard h3{
  margin-top:7px;
  font-size:22px;
  text-align:left;
}
.schedulePage .anniversaryCard p{
  font-size:16px;
  text-align:left;
}
.schedulePage .anniversaryInfo .eventLink{
  margin-top:12px;
}
.schedulePage .upcomingScheduleSection .upcomingCard,
.schedulePage .upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:52px 82px minmax(0,1fr);
  grid-template-areas:
    "dday date copy"
    "actions actions actions";
  gap:8px 10px;
  padding:12px;
}
.schedulePage .upcomingScheduleSection .upcomingCopy{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px 10px;
  align-items:center;
}
.schedulePage .upcomingScheduleSection .upcomingMain{
  min-width:0;
}
.schedulePage .upcomingScheduleSection .upcomingMain .typeBadge{
  margin-right:6px;
  vertical-align:middle;
}
.schedulePage .upcomingScheduleSection .upcomingMain h3{
  display:inline;
  font-size:18px;
}
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingMain p.upcomingDescription{
  margin-top:6px;
  font-size:15px !important;
}
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingCopy p.upcomingMembers{
  grid-column:2;
  justify-self:end;
  align-self:center;
  margin:0;
  font-size:16px !important;
  white-space:nowrap;
}
.schedulePage .upcomingScheduleSection .upcomingActions{
  justify-self:end;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
  .schedulePage .anniversaryCard,
  .schedulePage .anniversaryCard.featured{
    grid-template-columns:minmax(118px,150px) minmax(0,1fr);
  }
  .schedulePage .anniversaryPoster{
    max-height:225px;
  }
  .schedulePage .upcomingScheduleSection .upcomingCard,
  .schedulePage .upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .upcomingScheduleSection .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "dday date"
      "copy copy"
      "actions actions";
  }
}
@media(max-width:460px){
  .schedulePage .anniversaryCard,
  .schedulePage .anniversaryCard.featured{
    grid-template-columns:1fr;
  }
  .schedulePage .anniversaryPoster{
    width:min(100%,210px);
    justify-self:center;
  }
}


/* v12 — override the legacy wide upcoming-card grid inside the narrow panel */
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:52px 82px minmax(0,1fr) !important;
  grid-template-areas:
    "dday date copy"
    "actions actions actions" !important;
  min-height:100px;
  gap:8px 10px !important;
  padding:12px !important;
}
@media(max-width:760px){
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr) !important;
    grid-template-areas:
      "dday date"
      "copy copy"
      "actions actions" !important;
  }
}


/* v13 — compact flat anniversary poster and expanded upcoming schedule */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,2.5fr);
}
.schedulePage .anniversarySection{
  display:block;
  padding:16px;
}
.schedulePage .anniversarySection #upcomingAnniversary{
  height:100%;
  padding:0;
  overflow:auto;
}
.schedulePage .anniversaryCard,
.schedulePage .anniversaryCard.featured{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
  height:auto;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.schedulePage .anniversaryHeadline{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-width:0;
}
.schedulePage .anniversaryHeadline .anniversaryDday{
  min-width:58px;
  min-height:31px;
  padding:5px 9px;
  font-size:14px;
  white-space:nowrap;
}
.schedulePage .anniversaryHeadline time{
  display:block;
  margin:0;
  color:#76527b;
  font-size:14px;
  line-height:1.3;
  white-space:nowrap;
}
.schedulePage .anniversaryHeadline h3{
  min-width:0;
  margin:0;
  font-size:17px;
  line-height:1.3;
  overflow:hidden;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedulePage .anniversaryPoster{
  width:min(100%,205px);
  max-height:none;
  aspect-ratio:2/3;
  align-self:center;
  border-radius:12px;
}
.schedulePage .anniversaryPoster img{
  object-fit:contain;
}
.schedulePage .anniversaryDescription{
  margin:0;
  font-size:14px;
  line-height:1.4;
  text-align:center;
}
.schedulePage .anniversaryCard>.eventLink{
  align-self:center;
  margin-top:0;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:56px 92px minmax(0,1fr) !important;
  align-items:center;
}
.schedulePage .upcomingScheduleSection .upcomingDate,
.schedulePage .upcomingScheduleSection .upcomingCopy,
.schedulePage .upcomingScheduleSection .upcomingMain{
  align-self:center;
}
.schedulePage .upcomingScheduleSection .upcomingDate strong,
.schedulePage .upcomingScheduleSection .upcomingDate small{
  line-height:1.35;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCopy p.upcomingMembers{
  color:#805f84;
  line-height:1.35;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
  .schedulePage .anniversaryPoster{
    width:min(100%,200px);
  }
}


/* v14 — anniversary poster lightbox */
.schedulePage .anniversaryPosterButton{
  position:relative;
  display:block;
  padding:0;
  cursor:zoom-in;
}
.schedulePage .anniversaryPosterButton>span{
  position:absolute;
  right:9px;
  bottom:9px;
  padding:5px 8px;
  border-radius:999px;
  background:#271c2dcc;
  color:#fff;
  font-size:12px;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .18s ease,transform .18s ease;
}
.schedulePage .anniversaryPosterButton:hover>span,
.schedulePage .anniversaryPosterButton:focus-visible>span{
  opacity:1;
  transform:translateY(0);
}
.anniversaryPosterViewer{
  width:auto;
  max-width:94vw;
  max-height:94vh;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:16px;
  background:#17111b;
  box-shadow:0 28px 90px #120b18a8;
}
.anniversaryPosterViewer::backdrop{
  background:#24182db8;
  backdrop-filter:blur(7px);
}
.anniversaryPosterViewer img{
  display:block;
  width:auto;
  max-width:min(90vw,900px);
  height:auto;
  max-height:88vh;
  object-fit:contain;
  border-radius:16px;
}
.anniversaryPosterViewerClose{
  position:absolute;
  z-index:2;
  top:10px;
  right:10px;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:1px solid #ffffff66;
  border-radius:999px;
  background:#1c1321cc;
  color:#fff;
  font-family:inherit;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.anniversaryPosterViewerClose:hover,
.anniversaryPosterViewerClose:focus-visible{
  background:#b45fc4;
}
@media(prefers-reduced-motion:reduce){
  .schedulePage .anniversaryPosterButton>span{
    transition:none;
  }
}


/* v15 — vertically align monthly off cards */
.schedulePage .monthlyOffSection .monthlyOffCard{
  min-height:76px;
  align-content:center;
  justify-items:start;
  row-gap:5px;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingDate,
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy{
  width:100%;
  align-self:center;
  margin:0;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingDate strong,
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy h3{
  display:block;
  margin:0;
  line-height:1.35;
}


/* v16 — edge-to-edge anniversary poster and aligned upcoming rows */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,3fr);
}
.schedulePage .anniversarySection{
  padding:0;
  overflow:hidden;
}
.schedulePage .anniversarySection #upcomingAnniversary{
  height:100%;
  overflow:hidden;
}
.schedulePage .anniversaryCard,
.schedulePage .anniversaryCard.featured{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.schedulePage .anniversaryHeadline{
  flex:0 0 auto;
  grid-template-columns:auto auto minmax(0,1fr);
  gap:5px;
  padding:14px 11px 12px;
  border-bottom:1px solid #ead5ed;
  background:#fff;
}
.schedulePage .anniversaryHeadline .anniversaryDday{
  min-width:52px;
  min-height:32px;
  padding:5px 8px;
  font-size:15px;
}
.schedulePage .anniversaryHeadline time{
  font-size:16px;
  font-weight:900;
}
.schedulePage .anniversaryHeadline h3{
  font-size:18px;
  font-weight:900;
}
.schedulePage .anniversaryPoster{
  flex:1 1 auto;
  width:100%;
  min-height:0;
  max-height:none;
  aspect-ratio:auto;
  border:0;
  border-radius:0;
  background:#100b17;
}
.schedulePage .anniversaryPoster img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:0;
}
.schedulePage .anniversaryPosterEmpty{
  min-height:260px;
}
.schedulePage .anniversaryDescription{
  position:absolute;
  z-index:2;
  left:10px;
  bottom:10px;
  max-width:calc(100% - 20px);
  padding:6px 9px;
  border-radius:10px;
  background:#211726cf;
  color:#fff;
  text-align:left;
}
.schedulePage .anniversaryCard>.eventLink{
  position:absolute;
  z-index:3;
  right:10px;
  bottom:10px;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:56px 96px minmax(0,1fr) auto !important;
  grid-template-areas:
    "dday date main members"
    "actions actions actions actions" !important;
  align-items:center;
  column-gap:14px !important;
}
.schedulePage .upcomingScheduleSection .upcomingMain{
  grid-area:main;
  min-width:0;
  align-self:center;
}
.schedulePage .upcomingScheduleSection .upcomingMembers{
  grid-area:members;
  align-self:center;
  justify-self:end;
  margin:0;
  color:#805f84;
  font-size:16px;
  line-height:1.35;
  white-space:nowrap;
}
.schedulePage .upcomingScheduleSection .upcomingActions{
  grid-area:actions;
}
.schedulePage .upcomingScheduleSection .upcomingMain .upcomingDescription{
  margin-top:5px;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-areas:
      "dday date date"
      "main main members"
      "actions actions actions" !important;
  }
  .schedulePage .anniversaryPoster{
    min-height:300px;
  }
}


/* v17 — center the lightbox around the poster instead of a full-width dialog */
dialog.anniversaryPosterViewer{
  width:fit-content !important;
  height:fit-content !important;
  inline-size:fit-content !important;
  block-size:fit-content !important;
  max-width:94vw !important;
  max-height:94vh !important;
  margin:auto !important;
  padding:0 !important;
  overflow:visible !important;
  background:transparent;
}
dialog.anniversaryPosterViewer[open]{
  display:grid;
  place-items:center;
}
dialog.anniversaryPosterViewer img{
  width:auto !important;
  height:auto !important;
  max-width:90vw !important;
  max-height:88vh !important;
  margin:0 auto;
}


/* v18 — remove the shared upcoming-panel inset from the anniversary poster */
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection{
  display:block !important;
  padding:0 !important;
}
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection #upcomingAnniversary,
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection .anniversaryCard{
  width:100%;
  height:100%;
}


/* v19 — align every upcoming first-row label and slightly widen anniversary */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,2.7fr);
}
.schedulePage .anniversaryPoster{
  margin-bottom:8px;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
  grid-template-columns:56px 96px minmax(0,1fr) auto !important;
  grid-template-areas:
    "dday date main members"
    ". . description ."
    "actions actions actions actions" !important;
  align-content:center;
  align-items:center;
  row-gap:5px !important;
}
.schedulePage .upcomingScheduleSection .dDayBadge,
.schedulePage .upcomingScheduleSection .upcomingDate,
.schedulePage .upcomingScheduleSection .upcomingMain,
.schedulePage .upcomingScheduleSection .upcomingMembers{
  align-self:center;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection p.upcomingDescription{
  grid-area:description;
  align-self:start;
  margin:0;
  color:#6d526f;
  font-size:15px !important;
  line-height:1.35;
  white-space:normal;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-areas:
      "dday date date"
      "main main members"
      "description description description"
      "actions actions actions" !important;
  }
}


/* v20 — let both scroll lists fill the panel down to the shared 16px inset */
.schedulePage .scheduleOverview>.monthlyOffSection .upcomingList,
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingList{
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
}


/* v21 — stretch inside the existing grid row without growing the overview itself */
.schedulePage .scheduleOverview>.monthlyOffSection .upcomingList,
.schedulePage .scheduleOverview>.upcomingScheduleSection .upcomingList{
  height:auto;
  align-self:stretch;
}


/* v22 — keep the desktop overview compact while both lists fill its inner height */
@media(min-width:1101px){
  .schedulePage .scheduleOverview{
    height:clamp(380px,28vw,440px);
    min-height:0;
  }
}


/* v23 — show the full poster with side breathing room and restore dark schedule text */
.schedulePage .anniversaryPoster{
  width:calc(100% - 16px);
  margin:0 8px 8px;
  border-radius:10px;
}
.schedulePage .anniversaryPoster img{
  object-fit:contain;
  border-radius:10px;
}
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingDate strong,
.schedulePage .monthlyOffSection .monthlyOffCard .upcomingCopy h3,
.schedulePage .upcomingScheduleSection .upcomingDate strong,
.schedulePage .upcomingScheduleSection .upcomingDate small,
.schedulePage .upcomingScheduleSection .upcomingMain h3,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection p.upcomingDescription,
.schedulePage .upcomingScheduleSection .upcomingMembers{
  color:#3f2d45;
}


/* v24 — center the real upcoming content block vertically at any line count */
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
  position:relative;
  grid-template-areas:"dday date main members" !important;
  align-content:center;
  row-gap:5px !important;
}
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection p.upcomingDescription{
  grid-area:auto;
  grid-column:3;
  grid-row:2;
  margin:0;
}
.schedulePage .upcomingScheduleSection .upcomingMembers{
  font-size:17px;
}
.schedulePage .upcomingScheduleSection .upcomingActions{
  position:absolute;
  right:10px;
  bottom:8px;
}
@media(max-width:760px){
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.hasImage,
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.noImage{
    grid-template-areas:
      "dday date date"
      "main main members" !important;
  }
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection p.upcomingDescription{
    grid-column:1/-1;
    grid-row:3;
  }
}


/* v25 — preserve the existing member weight while only increasing its size */
.schedulePage .upcomingScheduleSection .upcomingMembers{
  font-weight:400;
}


/* v26 — white poster gutters and member centered across the full card content */
.schedulePage .anniversaryPoster{
  background:#fff !important;
}
@media(min-width:761px){
  .schedulePage .upcomingScheduleSection .upcomingMembers{
    grid-area:auto;
    grid-column:4;
    grid-row:1/3;
    align-self:center;
  }
}
@media(max-width:760px){
  .schedulePage .upcomingScheduleSection .upcomingMembers{
    grid-area:auto;
    grid-column:3;
    grid-row:2/4;
    align-self:center;
  }
}


/* v27 — align the visible date line with D-day; place time underneath independently */
.schedulePage .upcomingScheduleSection .upcomingDate{
  position:relative;
  display:flex;
  min-height:32px;
  align-items:center;
}
.schedulePage .upcomingScheduleSection .upcomingDate strong{
  display:block;
}
.schedulePage .upcomingScheduleSection .upcomingDate small{
  position:absolute;
  top:calc(50% + 9px);
  left:0;
  margin:0;
}


/* v28 — equal 8px spacing around the anniversary poster */
.schedulePage .anniversaryPoster{
  margin:8px;
}


/* v29 — group every upcoming date into one card */
.schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.upcomingDateGroup{
  display:grid;
  grid-template-columns:56px 96px minmax(0,1fr) !important;
  grid-template-areas:"dday date items" !important;
  align-items:center;
  align-content:center;
  min-height:100px;
  column-gap:14px !important;
  row-gap:0 !important;
}
.schedulePage .upcomingDateGroup>.dDayBadge{
  grid-area:dday;
  align-self:center;
}
.schedulePage .upcomingDateGroup>.upcomingDate{
  grid-area:date;
  align-self:center;
}
.schedulePage .upcomingGroupItems{
  grid-area:items;
  display:grid;
  min-width:0;
}
.schedulePage .upcomingGroupItem{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:10px 0;
}
.schedulePage .upcomingGroupItem+.upcomingGroupItem{
  border-top:1px solid #ead9ed;
}
.schedulePage .upcomingGroupMain{
  min-width:0;
}
.schedulePage .upcomingGroupHeadline{
  display:flex;
  min-width:0;
  align-items:center;
  gap:7px;
}
.schedulePage .upcomingGroupHeadline time{
  flex:0 0 auto;
  color:#3f2d45;
  font-size:15px;
  line-height:1.35;
}
.schedulePage .upcomingGroupHeadline h3{
  min-width:0;
  margin:0;
  overflow:hidden;
  color:#3f2d45;
  font-size:18px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedulePage .upcomingGroupItem .upcomingDescription{
  margin:5px 0 0;
  color:#3f2d45;
  font-size:15px;
  line-height:1.35;
}
.schedulePage .upcomingGroupItem .upcomingMembers{
  align-self:center;
  justify-self:end;
  margin:0;
  color:#3f2d45;
  font-size:17px;
  font-weight:400;
  white-space:nowrap;
}
.schedulePage .upcomingGroupItem .upcomingActions{
  position:static;
  align-self:center;
}
@media(max-width:760px){
  .schedulePage .scheduleOverview>.upcomingSection.upcomingScheduleSection .upcomingCard.upcomingDateGroup{
    grid-template-columns:auto minmax(0,1fr) !important;
    grid-template-areas:
      "dday date"
      "items items" !important;
    gap:9px 12px !important;
  }
  .schedulePage .upcomingGroupItem{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .schedulePage .upcomingGroupItem .upcomingActions{
    grid-column:1/-1;
    justify-self:start;
  }
}


/* v30 — lay same-day schedules out horizontally */
.schedulePage .upcomingGroupItems{
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
  align-items:stretch;
}
.schedulePage .upcomingGroupItem{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:4px;
  padding:9px 12px;
}
.schedulePage .upcomingGroupItem+.upcomingGroupItem{
  border-top:0;
  border-left:1px solid #ead9ed;
}
.schedulePage .upcomingGroupHeadline{
  flex-wrap:wrap;
  gap:5px 7px;
}
.schedulePage .upcomingGroupHeadline h3{
  overflow:visible;
  font-size:17px;
  text-overflow:clip;
  white-space:normal;
}
.schedulePage .upcomingGroupItem .upcomingDescription{
  margin-top:2px;
  font-size:14px;
}
.schedulePage .upcomingGroupItem .upcomingMembers{
  align-self:flex-end;
  margin-top:3px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:3px 10px;
  border:1px solid var(--schedule-accent-line);
  border-radius:999px;
  background:var(--schedule-accent-pale);
  color:var(--schedule-accent-ink);
  font-size:16px;
}
.schedulePage .upcomingGroupItem .upcomingActions{
  align-self:flex-end;
  margin-top:3px;
}
@media(max-width:760px){
  .schedulePage .upcomingGroupItems{
    grid-auto-flow:row;
    grid-auto-columns:auto;
  }
  .schedulePage .upcomingGroupItem+.upcomingGroupItem{
    border-top:1px solid #ead9ed;
    border-left:0;
  }
}


/* v31 — anniversary first, with only headline and poster visible */
.schedulePage .scheduleOverview{
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,2.7fr);
}
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection{
  overflow:visible;
  border:0 !important;
  border-radius:0;
  background:transparent !important;
  box-shadow:none !important;
}
.schedulePage .anniversaryHeadline{
  padding:6px 8px 8px;
  border:0;
  background:transparent;
}
.schedulePage .anniversaryPoster{
  box-shadow:0 12px 30px #5f3d6818;
}
@media(max-width:1100px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr 1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .schedulePage .scheduleOverview{
    grid-template-columns:1fr;
  }
  .schedulePage .upcomingScheduleSection{
    grid-column:auto;
  }
}

/* v32 — gallery-style anniversary poster with a soft lavender glow */
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection{
  overflow:hidden;
  border:2px solid #d6b1dd !important;
  border-radius:20px;
  background:#fff !important;
  box-shadow:0 18px 50px #6d427512 !important;
}
.schedulePage .anniversaryHeadline{
  gap:7px;
  border-bottom:1px solid #ead5ed;
  background:#fff;
}
.schedulePage .anniversaryHeadline .anniversaryDday{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-weight:900;
  border-radius:999px;
}
.schedulePage .anniversaryPoster{
  overflow:hidden;
  border:1px solid rgba(214,177,221,.48);
  background:#fff !important;
  box-shadow:
    0 9px 20px rgba(76,49,84,.10),
    0 0 20px rgba(190,110,230,.10);
  transition:transform .2s ease,box-shadow .2s ease;
}
.schedulePage .anniversaryPoster img{
  object-fit:contain;
}
@media(hover:hover) and (pointer:fine){
  .schedulePage .anniversaryPosterButton:hover,
  .schedulePage .anniversaryPosterButton:focus-visible{
    transform:translateY(-2px);
    box-shadow:
      0 11px 24px rgba(76,49,84,.12),
      0 0 22px rgba(190,110,230,.12);
  }
}
@media(prefers-reduced-motion:reduce){
  .schedulePage .anniversaryPoster{
    transition:none;
  }
}

/* v33 — reusable featured anniversary card with an offset gallery frame */
.schedulePage .scheduleOverview>.upcomingSection.anniversarySection{
  position:relative;
  background:linear-gradient(155deg,#fff 0%,#fcf8ff 100%) !important;
  box-shadow:
    inset 0 0 0 1px rgba(214,177,221,.34),
    0 18px 50px #6d427512 !important;
}
.schedulePage .anniversaryCard,
.schedulePage .anniversaryCard.featured{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden;
}
.schedulePage .anniversaryCard::before{
  content:"";
  position:absolute;
  z-index:5;
  top:9px;
  right:9px;
  width:20px;
  height:20px;
  border-top:1px solid rgba(177,104,199,.72);
  border-right:1px solid rgba(177,104,199,.72);
  background:none;
  pointer-events:none;
  animation:none;
  transform:none;
}
.schedulePage .anniversaryPoster{
  order:1;
  flex:1 1 auto;
  width:calc(100% - 26px);
  min-height:0;
  margin:10px 16px 14px 10px;
  overflow:hidden;
  border:1px solid rgba(190,142,204,.62);
  border-radius:8px;
  background:#fff !important;
  box-shadow:
    7px 7px 0 -1px rgba(177,104,199,.22),
    0 9px 20px rgba(76,49,84,.10);
  transition:transform .2s ease,box-shadow .2s ease;
}
.schedulePage .anniversaryPoster img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  border-radius:7px;
}
.schedulePage .anniversaryHeadline{
  order:2;
  position:static;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  gap:3px 9px;
  min-width:0;
  padding:8px 12px 10px;
  border-top:1px solid #ead5ed;
  border-bottom:0;
  background:linear-gradient(180deg,#fff 0%,#fcf8ff 100%);
}
.schedulePage .anniversaryHeadline::before{
  content:"UPCOMING ANNIVERSARY";
  grid-column:1/-1;
  color:#a16cac;
  font-size:10px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.1em;
}
.schedulePage .anniversaryHeadline .anniversaryDday{
  position:absolute;
  z-index:6;
  top:9px;
  left:8px;
  display:inline-flex;
  width:auto;
  min-width:54px;
  min-height:31px;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border:1px solid #df7ca1;
  border-radius:999px;
  background:linear-gradient(135deg,#d8619b,#aa62c7);
  box-shadow:0 6px 14px rgba(167,85,141,.22);
  color:#fff;
  font-size:15px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
.schedulePage .anniversaryHeadline time{
  grid-column:1;
  grid-row:2;
  margin:0;
  color:#8a678e;
  font-size:14px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}
.schedulePage .anniversaryHeadline h3{
  grid-column:2;
  grid-row:2;
  min-width:0;
  margin:0;
  overflow:visible;
  color:#432b49;
  font-size:18px;
  font-weight:900;
  line-height:1.25;
  overflow-wrap:anywhere;
  text-align:left;
  text-overflow:clip;
  white-space:normal;
}
.schedulePage .anniversaryDescription{
  order:3;
  position:static;
  z-index:auto;
  display:-webkit-box;
  margin:0;
  padding:0 12px 10px;
  overflow:hidden;
  background:#fcf8ff;
  color:#765d78;
  font-size:13px;
  line-height:1.35;
  text-align:left;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.schedulePage .anniversaryPosterButton>span{
  right:8px;
  bottom:8px;
  display:grid;
  width:29px;
  height:29px;
  place-items:center;
  padding:0;
  border:1px solid rgba(190,142,204,.72);
  border-radius:50%;
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 10px rgba(76,49,84,.12);
  color:#8f5a9b;
  font-size:0;
  opacity:.88;
  transform:none;
}
.schedulePage .anniversaryPosterButton>span::before{
  content:"";
  width:8px;
  height:8px;
  border:2px solid currentColor;
  border-radius:50%;
  transform:translate(-1px,-1px);
}
.schedulePage .anniversaryPosterButton>span::after{
  content:"";
  position:absolute;
  width:6px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transform:translate(5px,5px) rotate(45deg);
}
.schedulePage .anniversaryPosterButton:hover>span,
.schedulePage .anniversaryPosterButton:focus-visible>span{
  opacity:1;
  transform:none;
}
@media(hover:hover) and (pointer:fine){
  .schedulePage .anniversaryPosterButton:hover,
  .schedulePage .anniversaryPosterButton:focus-visible{
    transform:translateY(-2px);
    box-shadow:
      8px 8px 0 -1px rgba(177,104,199,.24),
      0 11px 23px rgba(76,49,84,.12);
  }
}
@media(prefers-reduced-motion:reduce){
  .schedulePage .anniversaryPoster{
    transition:none;
  }
}
/* Calendar event copy stays fully legible across every schedule type. */
.schedulePage .calendarEvent,
.schedulePage .calendarEvent time,
.schedulePage .calendarEvent strong,
.schedulePage .calendarEvent .calendarEventDescription,
.schedulePage .calendarEvent[data-schedule-type] .calendarEventDescription,
.schedulePage .calendarBroadcasts,
.schedulePage .calendarBroadcastLabel,
.schedulePage .calendarBroadcastLabel[data-schedule-type],
.schedulePage .calendarMore{
  color:#111;
}
/* Calendar-only viewport mode. */
.schedulePage .monthControls .calendarFullscreenToggle{
  position:absolute;
  left:calc(100% + 10px);
  width:auto;
  min-width:76px;
  padding:0 12px;
  font-family:var(--kyma-font);
  font-size:15px;
  white-space:nowrap;
}
body.calendarFullscreenOpen{
  overflow:hidden;
}
.schedulePage .calendarSection.calendarFullscreen{
  position:fixed;
  z-index:450;
  inset:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  place-items:center;
  box-sizing:border-box;
  width:100vw!important;
  height:100dvh;
  margin:0!important;
  padding:12px 16px 16px;
  overflow:hidden;
  transform:none!important;
  background:#f7fbfd;
}
.schedulePage .calendarSection.calendarFullscreen .calendarToolbar{
  width:100%;
  min-height:42px;
  margin-bottom:8px;
}
.schedulePage .calendarSection.calendarFullscreen .calendarWorkspace{
  display:block;
  width:min(calc(100vw - 32px),calc((100dvh - 78px) * var(--calendar-fullscreen-ratio,1.25)));
  aspect-ratio:var(--calendar-fullscreen-ratio,1.25);
  place-self:center;
  min-height:0;
  height:auto;
}
.schedulePage .calendarSection.calendarFullscreen .calendarCard{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.schedulePage .calendarSection.calendarFullscreen .calendarGrid{
  min-height:0;
  grid-template-rows:repeat(6,minmax(0,1fr));
}
.schedulePage .calendarSection.calendarFullscreen .calendarDay{
  min-height:0;
}
.schedulePage .calendarSection.calendarFullscreen .calendarSidebar,
.schedulePage .calendarSection.calendarFullscreen .dateDetail{
  display:none;
}
@media(max-width:760px){
  .schedulePage .calendarSection.calendarFullscreen{
    padding:8px 8px 10px;
  }
  .schedulePage .calendarSection.calendarFullscreen .calendarToolbar{
    min-height:38px;
    margin-bottom:6px;
  }
  .schedulePage .monthControls .calendarFullscreenToggle{
    left:calc(100% + 6px);
    min-width:62px;
    padding:0 8px;
    font-size:13px;
  }
}

/* Calendar typography: lighter weight with a small readability lift. */
.schedulePage .calendarEvent,
.schedulePage .calendarEvent time,
.schedulePage .calendarEvent strong,
.schedulePage .calendarEvent .calendarEventDescription,
.schedulePage .calendarEventHeadlineDescription .calendarEventDescription,
.schedulePage .calendarBroadcastLabel,
.schedulePage .calendarBroadcastLabel time,
.schedulePage .calendarBroadcastLabel strong,
.schedulePage .calendarMore{
  font-weight:400;
}
@media(min-width:901px){
  .schedulePage .dayNumber{
    font-size:21px;
  }
  .schedulePage .calendarEvent{
    font-size:19px;
  }
  .schedulePage .calendarEvent time{
    font-size:18px;
  }
  .schedulePage .calendarEvent strong{
    font-size:19px;
  }
  .schedulePage .calendarEvent .calendarEventDescription{
    font-size:17px;
  }
  .schedulePage .calendarBroadcasts{
    font-size:18px;
  }
  .schedulePage .calendarMore{
    font-size:18px;
  }
}
