#calendar-panel .calendar-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
#calendar-panel .calendar-main-column{display:grid;gap:14px;min-width:0}
#calendar-panel .calendar-toolbar{grid-template-columns:minmax(300px,auto) minmax(0,1fr)}
#calendar-panel .calendar-month-navigation{display:grid;grid-template-columns:40px minmax(170px,auto) 40px;gap:8px;margin:0}
#calendar-panel .calendar-current-month{min-height:42px;border-radius:9px;color:var(--navy);font:700 1rem/1.15 Georgia,"Times New Roman",serif;white-space:nowrap}
#calendar-panel .calendar-filters{justify-self:end;margin-left:auto}
#calendar-panel .calendar-filters>.calendar-troop-toggle,#calendar-panel .calendar-filters>.filter{box-sizing:border-box;width:160px;height:48px;min-height:48px;border:1px solid #9eaaa3;border-radius:9px}
#calendar-panel .calendar-troop-toggle{padding:10px 14px}
#calendar-panel .calendar-coming-up-card{position:sticky;top:0;padding:20px}
#calendar-panel .calendar-coming-up{grid-template-columns:1fr;gap:8px}
#calendar-panel .calendar-coming-up-item{padding:13px 14px;border:1px solid var(--line);border-left:3px solid var(--olive);background:#fff}
#calendar-panel .calendar-coming-up-item strong,#calendar-panel .calendar-coming-up-item span{display:block}
#calendar-panel .calendar-coming-up-item>span:first-child{color:var(--olive);font-size:.65rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}

#calendar-events.calendar-month-grid{display:block;overflow:hidden;border:1px solid #cfccc1;border-radius:13px;background:#fff;box-shadow:0 6px 18px rgb(15 43 70 / 6%)}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid #cfccc1;background:#f4f5ef}
.calendar-weekday{padding:8px 5px;color:#596875;font-size:.63rem;font-weight:850;text-align:center;text-transform:uppercase}
.calendar-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-month-day{min-width:0;min-height:118px;padding:7px 5px 8px;border-right:1px solid #dedcd4;border-bottom:1px solid #dedcd4;background:#fff}
.calendar-month-day:nth-child(7n){border-right:0}.calendar-month-day:nth-last-child(-n+7){border-bottom:0}
.calendar-month-day.is-outside-month{background:#faf9f5;color:#9aa1a5}
.calendar-month-number{display:block;margin:0 2px 5px;color:inherit;font-size:.66rem}
.calendar-month-events{display:grid;gap:4px}
.calendar-month-event{display:block;min-width:0;width:100%;padding:5px 6px;border:1px solid transparent;border-radius:5px;color:var(--navy);font:700 .59rem/1.2 system-ui,sans-serif;text-align:left;text-decoration:none;overflow:hidden;cursor:default}
button.calendar-month-event,a.calendar-month-event{cursor:pointer}.calendar-month-event-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere}.calendar-month-event-phase{display:block;margin-top:2px;color:#596875;font-size:.52rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.calendar-month-event-troop{background:#e8eef1}.calendar-month-event-adventure{background:#e7eedc}.calendar-month-event-council{border-color:#c6ad6a;background:#f6ecd1}.calendar-month-event-community{border-color:#c5b9d7;background:#ece7f3}
.calendar-month-event.is-start:not(.is-single){margin-right:-6px;border-radius:5px 0 0 5px}.calendar-month-event.is-middle{margin-right:-6px;margin-left:-6px;width:calc(100% + 12px);border-right:0;border-left:0;border-radius:0}.calendar-month-event.is-end{margin-left:-6px;width:calc(100% + 6px);border-radius:0 5px 5px 0}
button.calendar-month-event:hover,button.calendar-month-event:focus-visible,a.calendar-month-event:hover,a.calendar-month-event:focus-visible{position:relative;z-index:2;filter:brightness(.94);outline:2px solid var(--olive);outline-offset:1px}
.calendar-month-legend{display:flex;flex-wrap:wrap;gap:7px 14px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:.67rem}.calendar-month-legend li{display:flex;align-items:center;gap:5px}.calendar-month-legend span{width:10px;height:10px;border:1px solid #c6ad6a;border-radius:3px}.calendar-month-legend .is-troop{border-color:#dce5e9;background:#e8eef1}.calendar-month-legend .is-adventure{border-color:#d4dfc5;background:#e7eedc}.calendar-month-legend .is-council{background:#f6ecd1}.calendar-month-legend .is-community{border-color:#c5b9d7;background:#ece7f3}

@media(max-width:1050px){#calendar-panel .calendar-page-layout{grid-template-columns:1fr}#calendar-panel .calendar-coming-up-card{position:static;order:-1}#calendar-panel .calendar-coming-up{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){#calendar-panel .calendar-filters{justify-self:stretch;margin-left:0}#calendar-panel .calendar-filters>.calendar-troop-toggle,#calendar-panel .calendar-filters>.filter{width:auto;flex:1 1 160px}}
@media(max-width:760px){#calendar-panel .calendar-coming-up{grid-template-columns:1fr}.calendar-month-grid{overflow-x:auto!important}.calendar-weekdays,.calendar-month-days{min-width:760px}.calendar-month-day{min-height:104px}}


/* Calendar source hierarchy: consistent alignment and visible, non-color-only labels. */
#calendar-panel .calendar-coming-up-item{
  box-sizing:border-box;
  width:100%;
  justify-items:start;
  text-align:left;
  border-left-width:4px;
}
#calendar-panel button.calendar-coming-up-item,
#calendar-panel a.calendar-coming-up-item{
  appearance:none;
  font:inherit;
}
#calendar-panel .calendar-coming-up-source{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  color:var(--olive);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.075em;
  line-height:1.2;
  text-align:left;
  text-transform:uppercase;
}
#calendar-panel .calendar-source-mark{
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-radius:2px;
  background:currentColor;
}
#calendar-panel .calendar-coming-up-item>strong{
  width:100%;
  color:var(--navy);
  font:700 .9rem/1.28 Georgia,"Times New Roman",serif;
  text-align:left;
}
#calendar-panel .calendar-coming-up-meta{
  width:100%;
  color:var(--muted);
  font-size:.76rem;
  line-height:1.4;
  text-align:left;
}
#calendar-panel .calendar-coming-up-item.calendar-source-troop{
  border-left-color:#173a59;
  background:#eef3f6;
}
#calendar-panel .calendar-source-troop .calendar-coming-up-source{color:#173a59}
#calendar-panel .calendar-coming-up-item.calendar-source-adventure{
  border-left-color:#5d772c;
  background:#f1f5e9;
}
#calendar-panel .calendar-source-adventure .calendar-coming-up-source{color:#526b27}
#calendar-panel .calendar-coming-up-item.calendar-source-council{
  border-left-color:#a67c19;
  background:#fbf4df;
}
#calendar-panel .calendar-source-council .calendar-coming-up-source{color:#806015}
#calendar-panel .calendar-coming-up-item.calendar-source-community{
  border-left-color:#74618e;
  background:#f3eff7;
}
#calendar-panel .calendar-source-community .calendar-coming-up-source{color:#67547e}

/* Shared calendar controls and readable event cards on both sites. */
#calendar-panel{--navy:#0f2b46;--olive:#526b27;--line:#d8d6cc;--muted:#506273;color:var(--navy)}
#calendar-panel [hidden]{display:none!important}
#calendar-panel .calendar-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:13px}
#calendar-panel .calendar-month-navigation{display:flex;align-items:center;gap:8px}
#calendar-panel .calendar-filters{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
#calendar-panel .calendar-view-controls{display:flex;gap:5px}
#calendar-panel .filter-button,#calendar-panel .filter{min-height:42px;padding:8px 12px;border:1px solid #9eaaa3;border-radius:8px;background:#fff;color:var(--navy);font:700 .9rem/1.2 system-ui,sans-serif;cursor:pointer}
#calendar-panel .filter-button[aria-pressed="true"]{background:var(--navy);color:#fff}
#calendar-panel #calendar-month-label{font:700 1.2rem Georgia,serif;white-space:nowrap}
#calendar-panel .calendar-upcoming-list{display:grid;gap:10px}
#calendar-panel .calendar-upcoming-list .calendar-coming-up-item{padding:18px;gap:8px}
#calendar-panel .calendar-upcoming-list .calendar-coming-up-item>strong{font-size:1.12rem}
#calendar-panel .calendar-upcoming-list .calendar-coming-up-meta{font-size:.86rem}
.calendar-month-number{width:28px;height:28px;display:grid;place-items:center;margin:0 0 5px auto;font:700 .8rem system-ui,sans-serif}
.calendar-month-day.is-today .calendar-month-number{border-radius:50%;background:#f7b928;color:#0f2b46}
.calendar-month-event{padding:7px 6px;font-size:.75rem;border-left:3px solid #173a59;cursor:pointer}
.calendar-month-event-title{display:block;-webkit-line-clamp:unset;line-clamp:unset}
.calendar-month-event-time,.calendar-month-event-phase{display:block;font-size:.65rem;line-height:1.3;font-weight:800;color:#415566}
.calendar-month-event-time{margin-bottom:3px}
.calendar-month-event-adventure{border-left-color:#526b27}.calendar-month-event-council{border-left-color:#947016}.calendar-month-event-community{border-left-color:#74618e}
#calendar-panel .calendar-coming-up-source{display:flex!important}
#calendar-panel .calendar-source-mark{display:inline-block!important}
@media(max-width:760px){#calendar-panel .calendar-month-navigation{flex-wrap:wrap}#calendar-panel .calendar-filters{width:100%;justify-content:flex-start}#calendar-panel .calendar-view-controls{flex:1}#calendar-panel .calendar-view-controls button{flex:1}#calendar-panel .calendar-coming-up-card{display:none}#calendar-panel .calendar-filters>.filter{min-width:150px}#calendar-panel .calendar-page-layout{display:block}}
