.campaign-calendar{max-width:1240px;margin:auto}.calendar-masthead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.calendar-masthead h2{font-family:var(--display);font-size:30px;font-weight:500;margin:8px 0}.calendar-masthead p{color:var(--secondary);font-size:13px;line-height:1.7;margin:0}.calendar-masthead .action-row{flex-shrink:0;margin:0}.calendar-zone{margin:0 0 20px;font-size:11px}.calendar-zone strong{font-weight:550}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px;align-items:start}.calendar-month-panel{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.calendar-month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 16px}.calendar-month-toolbar>div{display:flex;align-items:center;gap:7px;min-width:0}.calendar-month-toolbar h3{font-size:17px;font-weight:550;white-space:nowrap;margin:0}.calendar-month-toolbar .icon-btn{font-size:25px;width:30px;min-width:30px;height:34px}.calendar-month-toolbar input{font:inherit;font-size:11px;width:145px;max-width:100%;padding:7px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:6px}.calendar-month-toolbar .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:var(--journal);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-weekdays span{text-align:center;font-size:10px;letter-spacing:.04em;font-weight:550;color:var(--secondary);padding:10px 0}.calendar-day{display:flex;flex-direction:column;gap:7px;min-width:0;min-height:89px;background:var(--surface);color:var(--text);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 6px;text-align:left;font:inherit;cursor:pointer}.calendar-day-slot:nth-child(7n) .calendar-day{border-right:0}.calendar-day.outside-month{background:var(--journal);color:var(--secondary)}.calendar-day.selected-day{background:var(--selected);box-shadow:inset 0 0 0 1px var(--identity)}.calendar-day-number{display:grid;place-items:center;width:24px;height:24px;font-size:11px;border-radius:50%}.calendar-day.is-today .calendar-day-number{background:var(--action);color:var(--action-text);font-weight:650}.calendar-day-events{display:flex;flex-direction:column;gap:4px;min-width:0;width:100%}.calendar-month-event{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;padding:4px 5px;background:var(--selected);border-left:2px solid var(--identity);border-radius:3px;line-height:1.4;color:var(--text)}.calendar-month-event.is-cancelled{text-decoration:line-through;opacity:.6;border-left-color:var(--secondary)}.calendar-day-events small{font-size:9px;color:var(--secondary);padding-left:4px}.calendar-day-dots{display:none}.calendar-day:hover{background:var(--hover)}#calendarLoadStatus{padding:0 18px;margin:8px 0}#calendarLoadStatus:empty{display:none}.calendar-day-agenda{padding:22px 20px}.calendar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:13px}.calendar-section-heading h3{font-size:15px;font-weight:600;margin:0}.calendar-section-heading .btn{font-size:10px;padding:7px 8px}.calendar-empty-day{font-size:12px;color:var(--secondary);margin:20px 0 4px}.calendar-upcoming{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--journal);min-width:0}.calendar-session-card{display:flex;flex-direction:column;gap:9px;width:100%;padding:16px;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:9px;margin:0 0 10px;font:inherit;cursor:pointer;min-width:0}.calendar-session-card:hover{border-color:var(--identity)}.calendar-session-card strong{font-size:17px;line-height:1.4;overflow-wrap:anywhere;font-weight:550}.calendar-session-date{font-size:10px;color:var(--secondary);line-height:1.6}.calendar-session-location{font-size:11px;color:var(--secondary);overflow-wrap:anywhere;line-height:1.6}.calendar-session-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:var(--secondary);margin-top:4px}.calendar-my-response{color:var(--action);font-weight:600}.calendar-session-card.is-cancelled{background:var(--journal);border-style:dashed}.calendar-status-cancelled{font-weight:600;color:var(--danger)}.calendar-empty-upcoming{padding:13px 0}.calendar-empty-upcoming strong{font-size:14px;font-weight:550}.calendar-empty-upcoming p,.calendar-subscribe-note p{font-size:12px;line-height:1.8;color:var(--secondary)}.calendar-subscribe-note{border-top:1px solid var(--line);padding-top:22px;margin-top:20px;color:var(--identity)}.calendar-subscribe-note .btn{padding-left:0}.calendar-detail-time{font-size:18px;line-height:1.7;margin:0 0 5px}.calendar-session-detail h3{font-size:14px;margin:0 0 12px}.calendar-session-detail>p{line-height:1.8;overflow-wrap:anywhere}.calendar-rsvp,.calendar-response-list{border-top:1px solid var(--line);padding:19px 0 0;margin:19px 0}.calendar-response-list p{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;font-size:12px;padding:11px 0;border-bottom:1px solid var(--line);margin:0}.calendar-response-list p>span{margin-left:auto;color:var(--secondary);font-size:11px}.calendar-detail-actions{border-top:1px solid var(--line);padding-top:16px}.calendar-cancelled-banner{color:var(--danger);background:var(--journal);padding:10px 13px;border-left:3px solid var(--danger);font-size:13px}.calendar-form-times,.calendar-form-repeat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.calendar-session-form input,.calendar-session-form select,.calendar-session-form textarea{min-width:0;max-width:100%}.calendar-session-form input[type=datetime-local]{font-size:12px;padding:11px 9px}.calendar-subscription-help{border-top:1px solid var(--line);padding-top:16px}.calendar-subscription-help h3{font-size:14px;margin:0 0 12px}.calendar-subscription-help details{border-bottom:1px solid var(--line);padding:12px 0}.calendar-subscription-help summary{font-size:13px;cursor:pointer;font-weight:550}.calendar-subscription-help p{font-size:12px;line-height:1.8;color:var(--secondary);margin:11px 0}.calendar-subscription-help a{font-size:12px}#calendarSubscriptionUrl{width:100%;font-size:11px}.calendar-next-summary:empty{display:none}.calendar-next-summary{margin:-4px 0 20px}.calendar-next-summary button{display:flex;align-items:center;gap:11px;flex-wrap:wrap;border:0;border-left:3px solid var(--identity);border-radius:0 7px 7px 0;background:var(--journal);color:var(--text);padding:12px 15px;text-align:left;cursor:pointer;width:100%}.calendar-next-summary small{color:var(--secondary);font-size:10px}.calendar-next-summary strong{font-size:13px;font-weight:600}.calendar-next-summary time{font-size:11px;color:var(--secondary);margin-left:auto}
@media(max-width:1050px){.calendar-layout{grid-template-columns:minmax(0,1fr) 245px;gap:16px}.calendar-month-toolbar{flex-wrap:wrap}.calendar-upcoming{padding:14px}}
@media(max-width:820px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-upcoming{padding:20px}.calendar-masthead{align-items:flex-start;flex-direction:column;gap:15px}.calendar-masthead h2{font-size:27px}.calendar-masthead .action-row{width:100%;flex-wrap:wrap}.calendar-month-toolbar{padding:14px 10px;gap:8px}.calendar-month-toolbar h3{font-size:16px}.calendar-month-toolbar input{width:140px}.calendar-day{min-height:63px;gap:4px;padding:7px 3px;align-items:center}.calendar-day-events{display:none}.calendar-day-dots{display:flex;gap:3px;flex-wrap:wrap;max-width:100%;justify-content:center}.calendar-day-dots i{width:5px;height:5px;border-radius:50%;background:var(--identity)}.calendar-day-dots i.cancelled-dot{background:var(--secondary);opacity:.5}.calendar-day-agenda{padding:19px 14px}.calendar-weekdays span{font-size:9px}.calendar-form-times,.calendar-form-repeat{grid-template-columns:minmax(0,1fr);gap:10px}.calendar-next-summary button{gap:7px 10px}.calendar-next-summary time{margin-left:0;flex-basis:100%}}
/* Form and button layout rules must not override the hidden attribute. */
.campaign-calendar [hidden],.calendar-session-form [hidden],.calendar-session-detail [hidden],#calendarSubscriptionPanel [hidden],#calendarStatusForm [hidden]{display:none!important}

#calendarNext svg{transform:rotate(180deg)}

.session-reminder-card{display:grid;gap:12px;max-width:560px;padding:6px 2px}.session-reminder-card p{white-space:pre-line;line-height:1.65}.session-reminder-eyebrow{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#61718b)}.session-reminder-card .btn{justify-self:start}

.calendar-event-type{display:inline-flex;align-self:flex-start;max-width:100%;border-radius:6px;padding:4px 8px;background:var(--subtle);color:var(--secondary);font-size:10px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}.calendar-session-detail>.calendar-event-type{margin:0 0 10px}.calendar-next-summary .calendar-event-type{font-size:10px}#calendarDeleteForm [hidden],#calendarReminderForm [hidden]{display:none!important}

.calendar-more-upcoming {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 42px;
  gap: 8px;
  margin-top: 5px;
}
.calendar-more-upcoming[aria-expanded="true"] svg { transform: rotate(180deg); }
[data-app-style="field-notes"] .calendar-more-upcoming {
  border-top: 1px solid var(--notebook-edge);
  border-radius: 0;
  color: var(--pencil);
}
@media (max-width:690px) {
  [data-app-style="field-notes"] .calendar-upcoming { margin-top: 10px; }
  [data-app-style="field-notes"] .calendar-upcoming .calendar-section-heading { padding-inline: 2px; }
  [data-app-style="field-notes"] .calendar-upcoming .calendar-session-card { padding: 10px 13px; }
  [data-app-style="field-notes"] .calendar-upcoming .calendar-subscribe-note { margin-top: 8px; }
}

.calendar-day-slot { position: relative; min-width: 0; }
.calendar-day-slot .calendar-day { width: 100%; height: 100%; }
.calendar-grid-add, .calendar-mobile-add { display: none; }

@media (min-width: 821px) {
  .calendar-grid-add {
    position: absolute;
    inset: 7px 6px auto auto;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
    font: 500 20px/1 var(--interface-font);
    cursor: pointer;
    visibility: hidden;
  }
  .calendar-day-slot:is(:hover,:focus-within,.is-selected) .calendar-grid-add { visibility: visible; }
  .calendar-grid-add:hover { background: var(--hover); border-color: var(--text); }
  .calendar-grid-add:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; }
}

@media (max-width: 820px) {
  .calendar-mobile-add {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--line);
  }
  .calendar-mobile-add > span { color: var(--text); font-weight: 650; }
  .calendar-mobile-add .btn { min-height: 44px; }
  #calendarAddOnDay { display: none; }
}
