.clearfix::after,
.calendar ol::after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

/* ================
Calendar Styling */
.calendar {
  min-width: 400px;
  position: relative;
}
.calendar a{
  cursor: pointer;
}
.calendar.noselect {
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
    -khtml-user-select: none; /* Konqueror HTML */
    -moz-user-select: none; /* Old versions of Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
    user-select: none; /* Non-prefixed version, currently
    supported by Chrome, Edge, Opera and Firefox */
}


.initials {
}
@media (max-width: 550px) {
  .initials {
    position: relative;
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    letter-spacing: ch; 
    width: 1.9ch;
  }
}

.calendar ol li {
  float: left;
  width: 14.28571%;
  position: relative;
  box-sizing: border-box;
  margin: 0 !important;
}

.calendar .day-names {
  border-bottom: 1px solid #eee;
  color: #444;
}

.calendar .days { 
  border-bottom: 1px solid #eee;
}
.calendar .days li {
  min-height: 6rem;
 
}

.calendar .days li .date {
  margin-bottom: 0.5rem;
}

.calendar .days li .event {
  font-size: 0.75rem;
  padding: 0.4rem 0.6rem 0.4rem  0.8rem;
  color: white;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border-radius: 4rem;
  margin: 0 1px 1px 0;
  cursor: pointer;
}

@media ( max-width: 768px) {
  .calendar .days li .event {

    padding: 3px 5px;
  }
  

}

.calendar .days li .event.span-2 {
  width: 200%;
}

.calendar .days li .event.begin {
  border-radius: 1rem 0 0 1rem;
}

.calendar .days li .event.end {
  border-radius: 0 1rem 1rem 0;
}

.calendar .days li .event.clear {
  background: none;
}

.calendar .days li:nth-child(n+29) {
  border-bottom: none;
}

.calendar .days li.outside .date  {
  color: #ddd;
}
.calendar .days li.today .date  {
  background: #e6e6e6;
  border-radius: 50%;
  padding: 3px 8px;
  display: inline-block;
  aspect-ratio: 1;
  transform: translateY(-3px);
}

.spinner {
  position: absolute;
  width: 100%;
  height: 100%;
}

/*
* ==========================================
* THEME COLOURS
* ==========================================
*
*/
.bg-orange, .bg-orange-alt:hover { background-color: #ff976f; }
.bg-red, .bg-red-alt:hover { background-color: #d60412; }
.bg-red-orange, .bg-red-orange-alt:hover { background-color: #fe6d56; }
.bg-green, .bg-green-alt:hover { background-color: #00c98d; }
.bg-sky-blue,.bg-sky-blue-alt:hover { background-color: #4cc1e6; }
.bg-blue, .bg-blue-alt:hover { background-color: #2a94bc; }
.bg-dark-blue, .bg-dark-blue-alt:hover { background-color: #365b7b; }
.bg-cyan, .bg-cyan-alt:hover { background-color: #00a5a7; }
.bg-dark-cyan, .bg-dark-cyan-alt:hover { background-color: #537a8a; }
.bg-purple, .bg-purple-alt:hover { background-color: #6d5a79; }

.bg-orange-alt { background-color: #ffa881; }
.bg-red-alt { background-color: #ec0414; }
.bg-red-orange-alt { background-color: #fe8977; }
.bg-green-alt { background-color: #00d49e; }
.bg-sky-blue-alt { background-color: #68c6e4; }
.bg-blue-alt { background-color: #459bbb; }
.bg-dark-blue-alt { background-color: #45627b; }
.bg-cyan-alt { background-color: #00b5b8; }
.bg-dark-cyan-alt { background-color: #637e89; }
.bg-purple-alt { background-color: #726879; }

.bg-orange { background-color: #ff976f; }
.bg-red { background-color: #E30613; }
.bg-red-orange { background-color: #fe6d56; }
.bg-green { background-color: #00c98d; }
.bg-sky-blue { background-color: #4cc1e6; }
.bg-blue { background-color: #2a94bc; }
.bg-dark-blue { background-color: #365b7b; }
.bg-cyan { background-color: #00a5a7; }
.bg-dark-cyan { background-color: #537a8a; }
.bg-purple { background-color: #6d5a79; }