.eic-calendar {
  background: var(--eic-bg, #fff);
  color: var(--eic-text, #222);
  border: 1px solid var(--eic-border, #d6d6d6);
  font-family: inherit;
  max-width: 1100px;
  margin: 2rem auto;
}

.eic-calendar * {
  box-sizing: border-box;
}

.eic-calendar__toolbar {
  align-items: center;
  border-bottom: 1px solid var(--eic-border, #d6d6d6);
  display: flex;
  justify-content: space-between;
  padding: 1rem;
}

.eic-calendar__title {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.2;
  margin: 0;
  text-align: center;
}

.eic-calendar__nav {
  background: #f7f7f7;
  border: 1px solid var(--eic-border, #d6d6d6);
  border-radius: 4px;
  color: var(--eic-text, #222);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  min-width: 42px;
  padding: .65rem .8rem;
}

.eic-calendar__nav:hover,
.eic-calendar__nav:focus {
  background: #e9e9e9;
}

.eic-calendar__weekdays,
.eic-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.eic-calendar__weekdays {
  border-bottom: 1px solid var(--eic-border, #d6d6d6);
  color: var(--eic-muted, #777);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.eic-calendar__weekdays span {
  padding: .75rem;
  text-align: center;
}

.eic-calendar__day {
  background: var(--eic-bg, #fff);
  border-bottom: 1px solid var(--eic-border, #d6d6d6);
  border-right: 1px solid var(--eic-border, #d6d6d6);
  min-height: 120px;
  padding: .5rem;
  position: relative;
}

.eic-calendar__day:nth-child(7n) {
  border-right: 0;
}

.eic-calendar__day--other-month {
  color: var(--eic-muted, #777);
  opacity: .55;
}

.eic-calendar__day--past {
  background: var(--eic-past-bg, #f0f0f0);
  color: var(--eic-muted, #777);
}

.eic-calendar__day--today {
  box-shadow: inset 0 0 0 2px var(--eic-text, #222);
}

.eic-calendar__date {
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: .45rem;
}

.eic-calendar__event {
  background: var(--eic-event-bg, #333);
  border-radius: 4px;
  color: var(--eic-event-text, #fff);
  display: block;
  font-size: .78rem;
  line-height: 1.25;
  margin-bottom: .35rem;
  overflow: hidden;
  padding: .4rem .5rem;
}

.eic-calendar__event strong,
.eic-calendar__event span {
  display: block;
}

.eic-calendar__event span {
  font-size: .72rem;
  opacity: .82;
}

@media (max-width: 700px) {
  .eic-calendar__weekdays {
    display: none;
  }

  .eic-calendar__grid {
    display: block;
  }

  .eic-calendar__day {
    border-right: 0;
    min-height: auto;
  }

  .eic-calendar__day--other-month {
    display: none;
  }
}

.eic-calendar__event,
.eic-calendar__event:hover,
.eic-calendar__event:focus {
  color: var(--eic-event-text, #fff);
  text-decoration: none;
}

.eic-calendar__event:hover,
.eic-calendar__event:focus {
  filter: brightness(1.08);
}

.eic-calendar__empty {
  color: var(--eic-muted, #777);
  margin: 0;
  padding: 1rem;
  text-align: center;
}
