.gym-calendar { max-width: 1160px; }
.gc-heading, .gc-toolbar, .gc-toolbar [role=group], .gc-agenda li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.gc-heading { flex-wrap: wrap; margin: 1rem 0 2rem; }
.gc-heading h1 { margin: 0; }
.gc-toolbar { border-top: 1px solid var(--line); padding: 1.1rem 0; }
.gc-toolbar h2, .gc-agenda h3 { margin: 0; font-weight: 600; }
.gc-toolbar h2 { font-size: clamp(1.2rem, 2.3vw, 1.65rem); }
.gc-toolbar h2::first-letter, .gc-agenda h3::first-letter { text-transform: uppercase; }
.gc-toolbar [role=group] { gap: 3px; }
.gc-toolbar button { min-width: 44px; min-height: 44px; background: transparent; border: 1px solid var(--line); color: inherit; }
.gym-calendar button:focus-visible { outline: 2px solid var(--teal); outline-offset: -3px; z-index: 1; }
.gc-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-top: 1px solid var(--line); border-left: 1px solid var(--line);
}
.gc-weekday, .gc-blank, button.gc-day { border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gc-weekday { padding: .6rem .7rem; font-size: .8rem; font-weight: 600; color: var(--muted); }
.gc-blank, .gc-weekday { background: color-mix(in srgb, var(--muted) 5%, transparent); }
button.gc-day {
  display: flex; flex-direction: column; align-items: stretch; gap: .4rem;
  min-width: 0; min-height: 76px; padding: .55rem .65rem; border-radius: 0;
  text-align: left; font: inherit; color: inherit; background: transparent;
}
button.gc-day:hover, .gc-toolbar button:hover { background: color-mix(in srgb, var(--teal) 8%, transparent); }
button.gc-day[aria-pressed=true] {
  box-shadow: inset 0 0 0 2px var(--teal);
  background: color-mix(in srgb, var(--teal) 8%, transparent);
}
.gc-number { display: flex; align-items: center; gap: .4rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.gc-number small { font-size: .67rem; color: var(--teal); }
.gc-day[aria-current=date] .gc-number { text-decoration: underline; text-decoration-color: var(--lime); text-underline-offset: .22em; text-decoration-thickness: 3px; }
.gc-events { display: grid; gap: .25rem; }
.gc-event { display: flex; align-items: baseline; gap: .36rem; min-width: 0; font-size: .8rem; line-height: 1.3; }
.gc-event>span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gym-calendar [data-status] { --marker: var(--teal); }
.gym-calendar [data-status=completed] { --marker: var(--lime); }
html[data-theme=light] .gym-calendar [data-status=completed] { --marker: #608723; }
.gym-calendar [data-status=skipped] { --marker: var(--muted); }
.gc-event i, .gc-agenda small::before { display: inline-block; flex: none; width: .48rem; height: .48rem; background: var(--marker); }
.gc-agenda { margin-top: 1.45rem; border-top: 2px solid var(--teal); padding-top: 1rem; }
.gc-agenda h3 { font-size: 1.1rem; }
.gc-agenda ul { margin: .6rem 0 0; padding: 0; list-style: none; }
.gc-agenda li { border-bottom: 1px solid var(--line); padding: .7rem 0; }
.gc-agenda small { display: flex; align-items: center; gap: .4rem; color: var(--muted); }
.gc-agenda small::before { content: ''; }
.gc-agenda strong { display: block; margin-top: .25rem; overflow-wrap: anywhere; }
.gc-agenda .fit-button { flex: none; }
@media(max-width:740px) {
  .gc-heading { gap: .8rem; margin-bottom: 1.2rem; }
  .gc-weekday { text-align: center; padding: .5rem 0; }
  button.gc-day { min-height: 52px; padding: .4rem .1rem; gap: .35rem; align-items: center; }
  .gc-event>span, .gc-number small { display: none; }
  .gc-events { display: flex; gap: .25rem; align-items: center; }
  .gc-events small { font-size: .65rem; }
  .gc-agenda li { align-items: start; flex-wrap: wrap; }
}
