table { width: 100%; table-layout: fixed; margin-bottom: 0!important; }

table .header { display: flex; justify-content: center; flex-wrap: wrap; }
table .header .location { order: 1; display: none; margin-top: 1em; }
table .header .location .form-inline { flex-wrap: nowrap; }
table .header .location .form-inline .input-group {  }
table .header .location .form-inline select { width: auto; }
table .header .prevnext { text-align: left; white-space: nowrap; flex-basis: 33%; }
table .header .curmonth { text-align: right; white-space: nowrap; flex-basis: 33%; }
table .header .locationtoggle { text-align: center; flex-basis: 33%; }

.days th { overflow: hidden; }

@media (min-width: 768px) {
    table .header .location { order: 0; margin-top: 0; }
    table .header { flex-wrap: nowrap; justify-content: space-between; }
    table .header .curmonth { flex-basis: auto; margin-bottom: 0; }
    table .header .prevnext { flex-basis: auto; margin-bottom: 0; }
    table .header .locationtoggle { display: none; }
    table .header .location { display: block !important; }
}

tbody.loading td { padding: 0; }
tbody.loading div { display: flex; width: 100%; background: rgba(255, 255, 255, 0.8); position: relative; justify-content: center; align-items: center; }

.calendar td { color: rgba(128, 128, 128, 0.5); vertical-align: middle; cursor: pointer; }
.calendar td.current { color: #212529; }
.calendar td.today { background: rgba(255, 193, 7, 0.2); }
.calendar td.weekend { background: rgba(200, 200, 200, 0.1); }
.calendar td.selected { background: rgba(168, 41, 41, 0.1); }

.calendar td.active { background: rgba(40, 167, 69, 0.1); }
.calendar td.active.today { background: rgba(136, 168, 41, 0.1); }
.calendar td.active.weekend { background: rgba(73, 136, 88, 0.1); }
.calendar td.active.selected { background: rgba(168, 105, 41, 0.1); }
.calendar td.active.today.selected { background: rgba(168, 136, 41, 0.1); }

.calendar td.active.current { background: rgba(40, 167, 69, 0.2); }
.calendar td.active.current.today { background: rgba(136, 168, 41, 0.2); }
.calendar td.active.current.weekend { background: rgba(73, 136, 88, 0.2); }
.calendar td.active.current.selected { background: rgba(168, 105, 41, 0.2); }
.calendar td.active.current.today.selected { background: rgba(168, 136, 41, 0.2); }

.calendar td a { color: inherit; }

.calendar td>div { display: flex; align-items: center; }
.calendar td>div .day { width: 1.5em; }
.calendar td ul { font-size: 0.7em; list-style-type: none; margin: 0; padding: 0; line-height: 1; flex: 1; min-width: 0; }
.calendar td ul li { margin-bottom: 0.5em; }
.calendar td ul li:before { content: "\25AA"; float: left; margin-right: 0.5em; }
.calendar td ul li a { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar td ul li a .time { font-weight: bold; display: inline-block; margin-right: 0.5em; }
.calendar td ul li.nobullet:before { content: ""; margin-right: 0; }
.calendar td.current ul li.nobullet { color: rgba(128, 128, 128, 0.8); }

#events { list-style-type: none; margin: 0; padding: 0; }
#events li { padding: 1em; border-bottom: solid 1px #dee2e6; display: flex; }
#events .icon { padding-right: 1em; }
#events .event { flex: 1; }
#events .event .pos:before { content: ""; display: inline-block; width: 16px; height: 16px; background: url('location.svg'); background-size: 16px 16px; vertical-align: middle; margin-right: 0.2em; }
#events a { color: inherit; }

.footer { display: flex; justify-content: space-between; padding: .75rem; font-size: 0.9em; }
.footer p { margin-bottom: 0; }

#eventsdate h4 { text-align: center; font-size: 1.1em; padding: 0.2em; margin-bottom: 0; }

#alerts { position: fixed; top: 0; left: 0; right: 0; }
#alerts p { display: block; margin-left: auto; margin-right: auto; margin-bottom: 1em; max-width: 60em; }
#alerts p:first-child { margin-top: 1.5em; }
