/* Calendar — a rolling seven-day memory and one unwritten date.
   Loaded after the existing calendar styles to preserve site typography. */
.calendar-layer .calendar-panel-rolling {
  width: min(816px, calc(100vw - 36px));
  padding: 31px 34px 28px;
  max-height: calc(100svh - 36px);
}
.calendar-panel-rolling .calendar-intro {
  margin-bottom: 23px;
  padding-bottom: 22px;
}
.calendar-panel-rolling .calendar-intro p {
  max-width: 690px;
  line-height: 1.9;
}
.calendar-panel-rolling .calendar-intro p + p {
  margin-top: 1em;
}
.calendar-panel-rolling .calendar-head {
  gap: 16px;
  padding-bottom: 18px;
  align-items: end;
}
.calendar-panel-rolling .calendar-controls {
  display:grid;
  grid-template-columns: 28px auto 28px;
  gap: 7px;
  align-items: center;
  min-width: 0;
  font-size: 11px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.calendar-panel-rolling .calendar-controls button {
  padding: 5px 0;
}
.calendar-layer .calendar-grid.calendar-rolling-grid {
  grid-template-columns: repeat(8, minmax(0,1fr));
}
.calendar-panel-rolling .calendar-rolling-grid .calendar-day {
  height: 92px;
  min-width: 0;
  padding: 11px 8px 10px;
  gap: 4px;
}
.calendar-window-weekday {
  color: rgba(247,247,240,.40);
  font-family: var(--serif);
  font-size: 11px;
  line-height: 1.2;
}
.calendar-panel-rolling .calendar-number {
  font-size: 11px;
  letter-spacing: .005em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.calendar-panel-rolling .calendar-day-type {
  margin-top: auto;
  font-size: 12px;
}
.calendar-panel-rolling .calendar-day.is-unassigned {
  color: rgba(247,247,240,.26);
  background: transparent;
}
.calendar-panel-rolling .calendar-day.is-unassigned .calendar-window-weekday {
  color: rgba(247,247,240,.23);
}
@media (max-width:760px) {
  .calendar-layer .calendar-panel-rolling {
    top: 8px;
    left: 8px;
    width: calc(100vw - 16px);
    max-height: calc(100svh - 16px);
    padding: 23px 15px 23px;
  }
  .calendar-panel-rolling .calendar-intro {
    margin-bottom: 18px;
    padding-bottom: 19px;
  }
  .calendar-panel-rolling .calendar-intro p {
    font-size: 13px;
    line-height: 1.82;
  }
  .calendar-panel-rolling .calendar-head {
    gap: 12px;
    padding-bottom: 14px;
  }
  .calendar-panel-rolling .calendar-controls {
    width: 100%;
    grid-template-columns: 28px 1fr 28px;
    font-size: 11px;
  }
  .calendar-layer .calendar-grid.calendar-rolling-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }
  .calendar-panel-rolling .calendar-rolling-grid .calendar-day {
    height: 70px;
    padding: 8px 5px;
  }
  .calendar-panel-rolling .calendar-number {
    font-size: 10px;
  }
  .calendar-panel-rolling .calendar-day-type {
    font-size: 11px;
  }
  .calendar-window-weekday {font-size: 10px;}
}