:root {
  --fc-list-event-dot-width: 12px;
  --fc-event-bg-color: rgb(110, 128, 146);
  --fc-event-border-color: rgb(110, 128, 146);
}

:root,
[data-bs-theme='light'] {
  --fc-button-bg-color: var(--bs-gray-100);
  --fc-button-text-color: var(--bs-body-color);
  --fc-button-hover-bg-color: var(--bs-primary-bg-subtle);
  --fc-button-hover-border-color: var(--bs-primary-border-subtle);
  --fc-button-border-color: var(--bs-gray-100);
  --fc-today-bg-color: rgba(20, 200, 150, 0.25);
  --fc-border-color: var(--bs-gray-200);
  --fc-button-active-bg-color: var(--bs-primary-bg-subtle);
  --fc-button-active-border-color: var(--bs-primary-border-subtle);
  --fc-neutral-bg-color: var(--bs-gray-100);
  --fc-anchor-text-color: var(--bs-gray-600);
  --fc-heading-color: var(--bs-gray-700);
  --fc-body-color: var(--bs-gray-600);
  --fc-list-event-hover-bg-color: var(--bs-gray-100);
  --fc-event-cancel-hover-bg-color: rgba(0, 0, 0, 0.2);
  --fc-list-event-cancel-hover-bg-color: rgba(0, 0, 0, 0.05);
  --fc-cal-nav-btn-bg-hover-color: var(--bs-gray-200);
  --fc-cal-nav-btn-bg-color: rgba(0, 0, 0, 0);
  --fc-cal-nav-btn-hover-color: var(--bs-gray-900);
  --fc-cal-nav-btn-border-hover-color: var(--bs-gray-900);
  --fc-cal-nav-btn-border-color: var(--bs-gray-200);
  --fc-cal-nav-day-header: var(--bs-gray-400);
  --fc-cal-nav-outside-day-color: var(--bs-gray-400);
  --fc-cal-filter-checkbox-default: var(--bs-gray-400);
}

[data-bs-theme='dark'] {
  --fc-button-bg-color: var(--bs-gray-800);
  --fc-button-text-color: var(--bs-body-color);
  --fc-button-hover-bg-color: var(--bs-primary-bg-subtle);
  --fc-button-hover-border-color: var(--bs-primary-border-subtle);
  --fc-button-border-color: var(--bs-gray-800);
  --fc-today-bg-color: rgba(73, 214, 165, 0.25);
  --fc-border-color: var(--bs-gray-700);
  --fc-button-active-bg-color: var(--bs-primary-bg-subtle);
  --fc-button-active-border-color: var(--bs-primary-border-subtle);
  --fc-neutral-bg-color: var(--bs-gray-700);
  --fc-anchor-text-color: var(--bs-gray-300);
  --fc-heading-color: var(--bs-white);
  --fc-body-color: var(--bs-gray-300);
  --fc-list-event-hover-bg-color: var(--bs-gray-800);
  --fc-event-cancel-hover-bg-color: rgba(255, 255, 255, 0.2);
  --fc-list-event-cancel-hover-bg-color: rgba(255, 255, 255, 0.05);
  --fc-cal-nav-btn-bg-hover-color: var(--bs-gray-800);
  --fc-cal-nav-btn-bg-color: rgba(0, 0, 0, 0);
  --fc-cal-nav-btn-hover-color: var(--bs-gray-100);
  --fc-cal-nav-btn-border-hover-color: var(--bs-gray-100);
  --fc-cal-nav-btn-border-color: var(--bs-gray-800);
  --fc-cal-nav-day-header: var(--bs-gray-600);
  --fc-cal-nav-outside-day-color: var(--bs-gray-600);
  --fc-cal-filter-checkbox-default: var(--bs-gray-600);
}

.fc-toolbar-title {
  color: var(--fc-heading-color);
}

.fc-toolbar > * > .fc-button:not(:first-child) {
  margin-left: 0.75rem !important;
}

.fc-prev-button {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  margin-right: 4px !important;
}

.fc-next-button {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  margin-left: 4px !important;
}

.fc-button-group.d-none {
  margin-left: 0 !important;
}

.fc-cal-nav-button {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 24px !important;
  width: 24px !important;
  font-size: 0.9em !important;
  padding: 0 !important;
  background-color: var(--fc-button-bg-color);
  border: 1px solid var(--fc-button-border-color);
  border-radius: 6px;
  color: var(--fc-button-text-color);
}

.fc-cal-nav-button:hover {
  background-color: var(--fc-button-hover-bg-color);
  border-color: var(--fc-button-hover-border-color);
}

.fc-cal-nav-button.today {
  color: var(--bs-blue);
}

.fc-cal-nav-button.go-today {
  height: 32px !important;
  width: 48px !important;
}

.fc-cal-nav-button.outside {
  background-color: var(--bs-body-bg);
  color: var(--fc-cal-nav-outside-day-color);
}

.fc-cal-nav-month {
  font-size: 0.9em;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0.25rem;
}

.fc-cal-nav-prev-button,
.fc-cal-nav-next-button {
  border-radius: 50% !important;
  width: 24px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: var(--fc-button-bg-color);
  border: 1px solid var(--fc-button-border-color);
  color: var(--fc-button-text-color);
}

.fc-cal-nav-prev-button.year::before {
  font: var(--fa-font-regular);
  content: '\f100';
}

.fc-cal-nav-next-button.year::before {
  font: var(--fa-font-regular);
  content: '\f101';
}

.fc-cal-nav-prev-button.month::before {
  font: var(--fa-font-regular);
  content: '\f104';
}

.fc-cal-nav-next-button.month::before {
  font: var(--fa-font-regular);
  content: '\f105';
}

.fc-next-button,
.fc-prev-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.fc-next-button span {
  transform: translateX(1) !important;
}

.fc-prev-button span {
  transform: translateX(-1) !important;
}

.fc-theme-standard .fc-scrollgrid {
  border: none;
}

:not(.fc-button-group) > .fc-button {
  border-radius: 8px;
}

.fc-button-group > :first-child:not(.fc-next-button, .fc-prev-button),
.fc-button-group > .d-none + .fc-button:not(.d-none) {
  border-top-left-radius: 8px !important;
  border-bottom-left-radius: 8px !important;
}

.fc-button-group > :last-child:not(.fc-next-button, .fc-prev-button),
.fc-button-group > .fc-button:not(.d-none):has(+ .d-none) {
  border-bottom-right-radius: 8px !important;
  border-top-right-radius: 8px !important;
}

.fc-button {
  transition: 0.2s all !important;
  box-shadow: #2cb9ff !important;
}

.fc #fc-dom-1 {
  font-style: normal;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.02em;
}

th.fc-col-header-cell,
td.fc-day,
td.fc-timegrid-now-indicator-container {
  font-size: 12px !important;
  font-style: normal;
  font-weight: 400;
  line-height: 18px;
  letter-spacing: -0.02em;
}

a {
  text-decoration: none !important;
  color: var(--fc-anchor-text-color);
}

a.fc-event {
  font-size: 14px !important;
}

.fc-button,
.fc-button-primary,
.cal-nav-btn {
  --bs-btn-focus-shadow-rgb: 49, 132, 253;
}

.fc-button:focus,
.fc-button-primary:focus,
.cal-nav-btn:focus {
  box-shadow: none !important;
}

.fc-button:focus-visible,
.fc-button-primary:focus-visible,
.cal-nav-btn:focus-visible {
  box-shadow: 0 0 0 0.125rem rgba(var(--bs-btn-focus-shadow-rgb), 0.5) !important;
  outline: 0 !important;
}

#calendar {
  width: 100% !important;
  color: var(--fc-body-color);
}

#calendar.loading {
  pointer-events: none;
  opacity: 90%;
}

a.fc-event.canceled {
  background: repeating-linear-gradient(-45deg, transparent 0 15px, var(--fc-event-cancel-hover-bg-color) 15px 30px);
  opacity: 75%;
}

tr.fc-event.canceled {
  background: repeating-linear-gradient(-45deg, transparent 0 15px, var(--fc-list-event-cancel-hover-bg-color) 15px 30px);
}

.temp-hold {
  opacity: 75%;
}

.fc-event {
  cursor: pointer !important;
}

.fc-roster-button::before {
  font: var(--fa-font-regular);
  content: '\f0c0';
}

.fc-calstats-button::before {
  font: var(--fa-font-solid);
  content: '\f643';
}

.fc-listToggleBtn-button::before {
  font: var(--fa-font-regular);
  content: '\f03a';
}

.fc-filter-button::before {
  font: var(--fa-font-regular);
  content: '\e17c';
}

.fc-options-button::before {
  font: var(--fa-font-regular);
  content: '\f013';
}

.fc-print-button::before {
  font: var(--fa-font-solid);
  content: '\f02f';
}

.fc-offcanvas-button::before {
  font: var(--fa-font-solid);
  content: '\e24f';
}

.event-icons .present::before {
  font: var(--fa-font-regular);
  content: '\f058';
}

.event-icons .late-cancellation::before {
  font: var(--fa-font-solid);
  content: '\f253';
}

.event-icons .grace-cancellation::before {
  font: var(--fa-font-solid);
  content: '\f253';
}

.event-icons .absent::before {
  font: var(--fa-font-solid);
  content: '\f253';
}

.event-icons .virtual::before {
  font: var(--fa-font-solid);
  content: '\f390';
}

.event-icons .mock-exam-event::before {
  font: var(--fa-font-solid);
  content: '\f518';
}

.fc-timegrid-event.event-note {
  background: linear-gradient(to left bottom, transparent 50%, rgb(0, 0, 0, 0.2) 0) no-repeat 100% 0 / 1rem 1rem, linear-gradient(-135deg, transparent 0.70708rem, rgb(110, 130, 150) 0);
  border: none !important;
  box-shadow: none !important;
  border-radius: 0;
  background-color: none;
}

a.fc-list-day-text,
a.fc-list-day-side-text {
  text-decoration: none;
  font-weight: 300;
}

td.fc-list-event-title.d-flex {
  border-top: 1px solid var(--fc-border-color) !important;
  border-bottom: 1px solid var(--fc-border-color) !important;
}

.fc-loadingContainer-button {
  background-color: rgba(0, 0, 0, 0) !important;
  border: rgba(0, 0, 0, 0) !important;
  pointer-events: none;
}

.fc-col-header,
.fc-daygrid-body,
.fc-scrollgrid-section,
.fc-scrollgrid-sync-table,
.fc-timegrid-body,
.fc-timegrid-body table {
  width: 100% !important;
}

.fc-daygrid-dot-event .fc-event-title {
  font-weight: 400;
}

@keyframes fadeIn {
  from {
    opacity: 0.4;
  }
}

.fc-event.creating {
  opacity: 0.8;
  animation: fadeIn 0.75s infinite alternate;
}

.fc-event.fc-bg-event.out-of-office {
  opacity: 100%;
  /* background: repeating-linear-gradient(-45deg, transparent 0 10px, var(--fc-event-cancel-hover-bg-color) 10px 11px, transparent 11px 12px); */
}

.fc-toolbar-chunk {
  display: flex;
  align-items: center;
}

.cal-nav-btn,
.cal-loc-btn,
.fc-navButton-button.fc-button-primary,
.fc-calloc-button.fc-button-primary {
  --bs-btn-active-color: var(--bs-body-color);
  --bs-btn-active-bg: var(--fc-cal-nav-btn-bg-hover-color);
  --bs-btn-active-border-color: var(--fc-cal-nav-btn-border-hover-color);
  border: var(--bs-border-width) var(--bs-border-style) var(--fc-cal-nav-btn-border-color);
  background-color: var(--fc-cal-nav-btn-bg-color);
  min-width: 240px;
  height: 42px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cal-loc-btn,
.fc-calloc-button.fc-button-primary {
  min-width: 160px;
}

.cal-nav-btn:hover,
.cal-nav-btn.show,
.cal-loc-btn:hover,
.cal-loc-btn.show,
.fc-navButton-button.fc-button-primary:hover,
.fc-calloc-button.fc-button-primary:hover {
  background-color: var(--fc-cal-nav-btn-bg-color);
  border: var(--bs-border-width) var(--bs-border-style) var(--fc-cal-nav-btn-border-hover-color);
  color: var(--fc-cal-nav-btn-hover-color);
}

.cal-nav-btn:focus-visible,
.cal-loc-btn:focus-visible {
  color: var(--bs-body-color);
}

.cal-nav-btn::after,
.cal-loc-btn::after,
.fc-navButton-button.fc-button-primary::after,
.fc-calloc-button.fc-button-primary::after {
  font: var(--fa-font-solid);
  content: '\f0d7';
  font-size: 0.75rem;
  padding-left: 1em;
}

.cal-nav-day-header {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fc-cal-nav-day-header);
  flex: 1;
  font-size: 0.75rem;
  pointer-events: none;
}

#calendarOffcanvasRight {
  width: 500px !important;
}

.cal-filter-list {
  list-style: none;
}

.cal-filter-list-item {
  flex: 1;
  padding: 0.5rem;
  border: none;
  text-align: left;
  color: var(--bs-body-color);
  background-color: rgba(0, 0, 0, 0);
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.cal-filter-list-item-container {
  background-color: var(--bs-body-bg);
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0.5rem;
}

.cal-filter-list-item-container:not(:last-child) {
  border-bottom: 1px solid var(--fc-button-border-color);
}

.cal-filter-list-item-container:hover {
  background-color: var(--bs-tertiary-bg);
}

.cal-filter-list-item-container:has(.cal-filter-list-item.selected) {
  background-color: var(--bs-primary-bg-subtle);
}

.cal-filter-list-item.selected::before {
  font: var(--fa-font-solid);
  content: '\f058';
  padding-right: 0.5rem;
  color: var(--bs-primary);
}

[data-value] > .cal-filter-list .cal-filter-list-item:not(.selected)::before {
  font: var(--fa-font-regular);
  content: '\f111';
  padding-right: 0.5rem;
}

:not([data-value]) > .cal-filter-list .cal-filter-list-item::before {
  font: var(--fa-font-solid);
  content: '\f058';
  padding-right: 0.5rem;
  color: var(--fc-cal-filter-checkbox-default);
}

.filter-container.saving .btn-color-picker {
  pointer-events: none;
}

.accordion-button.collapsed .filter-counter[data-count='0'] {
  background-color: var(--bs-primary-bg-subtle);
}

.accordion-button.no-arrow {
  --bs-accordion-btn-icon: none;
  --bs-accordion-btn-active-icon: none;
}

.filter-counter {
  font-weight: 300;
  min-width: 24px;
  max-width: 24px;
}

.filter-counter[data-count] {
  background-color: var(--bs-danger);
  color: var(--bs-white);
}

.filter-counter[data-count='0'] {
  background-color: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
}

.fc-filter-button .badge[data-count='0'] {
  display: none;
}

.fc-event-title-container {
  flex-grow: 0 !important;
}

.new-event-popover {
  --bs-popover-max-width: 480px;
  --bs-popover-min-width: 480px;
}

.session-event-popover {
  --bs-popover-max-width: 480px;
  --bs-popover-min-width: 480px;
}

.mock-exam-event-popover {
  --bs-popover-max-width: 480px;
  --bs-popover-min-width: 480px;
}

.event-popover.loading {
  --bs-popover-max-width: 120px;
  --bs-popover-min-width: 120px;
}

.event-popover {
  padding: 0;
  min-width: var(--bs-popover-min-width);
  box-shadow: 0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.2) !important;
}

.event-popover .popover-body {
  padding: 0;
  transition: all 0.2s ease-in-out;
}

.popover .popover-event-content {
  font-size: 0.875rem;
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: var(--bs-tertiary-bg);
  border-radius: var(--bs-popover-border-radius);
  overflow: hidden;
}

.popover .popover-event-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0.5rem;
  border-bottom: var(--bs-border-width) solid var(--bs-border-color);
  /* background-color: var(--bs-tertiary-bg); */
}

.popover .popover-event-title {
  font-size: 0.875rem;
  margin: 0;
}

.popover .popover-event-body {
  background-color: var(--bs-body-bg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.popover:not(.loading) .loading-icon {
  display: none;
}

.popover.loading .popover-event-content {
  display: none;
}
/*
.popover .popover-event-body:has(>.invisible)~.popover-event-footer .btn{
    visibility: hidden;
} */

.popover .popover-event-footer {
  border-top: 1px solid var(--bs-border-color);
  background-color: var(--bs-tertiary-bg);
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.summary-modal-body {
  padding: 2rem 3rem;
  background: -moz-linear-gradient(top, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
  background: -webkit-linear-gradient(top, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
  background: linear-gradient(to bottom, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
}

.summary-modal-body-container {
  max-width: 696px;
  margin: 0 auto;
}

.summary-modal-simplified-container {
  padding: 2rem 3rem;
  background: -moz-linear-gradient(top, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
  background: -webkit-linear-gradient(top, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
  background: linear-gradient(to bottom, var(--tep-gradient-lower) 0%, var(--tep-gradient-upper) 100%);
}

.summary-modal-simplified-body {
  max-width: 696px;
  margin: 0 auto;
  background-color: var(--bs-tertiary-bg);
  padding: 1rem;
  border-radius: 0.5rem;
}

.attendance-summary-body .summary-simplified-prompt-header {
  font-size: 1rem;
  font-weight: 500;
  color: var(--tep-teal);
}

/* .attendance-summary-body .summary-simplified-prompt-entry {
    border-left: 4px solid var(--tep-teal);
    padding-left: 1rem;
} */

.summary-modal-simplified-body .summary-simplified-prompt-header,
.summary-simplified-card-body .summary-simplified-prompt-header {
  font-size: 1rem;
  font-weight: 500;
  color: var(--tep-teal);
}

/* .summary-modal-simplified-body .summary-simplified-prompt-response {
    padding-left: 1.125rem;
} */

.summary-modal-simplified-body .summary-simplified-prompt-entry,
.summary-simplified-card-body .summary-simplified-prompt-entry {
  margin-bottom: 1rem;
  border-left: 4px solid var(--tep-teal);
  padding-left: 1rem;
}

.summary-modal-prompts {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.summary-modal-prompt-entry {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.summary-modal-prompt-label {
  font-size: 1rem;
}

.summary-modal-prompt-label:has(+ :required)::before,
.summary-modal-prompt-label.required::before {
  content: '*';
  color: var(--bs-primary-border-subtle);
  padding-right: 0.5rem;
}

textarea.summary-modal-response-area {
  resize: none;
  height: 200px;
  font-size: 1em;
}

input.summary-modal-response-area {
  font-size: 1em;
}

.summary-container h3 {
  font-size: 1rem;
}

.summary-container .accordion-button {
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50rem;
  box-shadow: none;
  background-color: var(--bs-tertiary-bg);
}

.dropdown-item.edit-dropdown-item::before {
  font: var(--fa-font-regular);
  content: '\e472';
  width: 1rem;
}

.dropdown-item.cancel-dropdown-item::before {
  font: var(--fa-font-regular);
  content: '\f273';
  width: 1rem;
}

.dropdown-item.delete-dropdown-item::before {
  font: var(--fa-font-regular);
  content: '\f1f8';
  width: 1rem;
}

.dropdown-item.delete-dropdown-item {
  color: var(--bs-danger);
}

.dropdown-item.delete-dropdown-item:active {
  color: var(--bs-white);
  background-color: var(--bs-danger);
}

.dropdown-item.dropdown-item-logo {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: start;
}

.cancel-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}

.cancel-preview.confirm::before {
  font: var(--fa-font-regular);
  content: '\f00c';
  color: var(--bs-success);
  font-size: 16px;
}

.cancel-preview.deny::before {
  font: var(--fa-font-regular);
  content: '\f05e';
  color: var(--bs-secondary-bg);
  font-size: 16px;
}

.modal-xxl.loading .modal-body {
  display: none !important;
}

.modal-xxl:not(.loading) .loading-container {
  display: none !important;
}

.modal-xxl {
  --bs-modal-width: 1440px;
  min-height: 85vh;
  width: auto;
  margin: var(--bs-modal-margin);
}

.modal-xxl .modal-content {
  height: 85vh;
}

@media (min-width: 1440px) {
  .modal-xxl {
    --bs-modal-width: 90vw;
    margin-left: auto;
    margin-right: auto;
  }
}

.cal-stats-container {
  --cal-stats-student-roster-width: 26rem;
  --cal-stats-column-width: 10rem;
}

.cal-stats-student-roster {
  min-width: var(--cal-stats-student-roster-width);
  overflow: hidden;
}

.cal-stats-table {
  height: auto;
}

.cal-stats-header {
  display: flex;
  min-height: 2rem;
  max-height: 2rem;
  top: 0;
  /* border: 1px solid red; */
}

.cal-stats-student-hours-aggregate {
  display: flex;
  min-height: 2rem;
  max-height: 2rem;
  top: 0;
}

.cal-stats-aggregate-cell {
  background-color: var(--bs-secondary-bg);
  min-height: inherit;
  max-height: inherit;
  min-width: var(--cal-stats-column-width);
  max-width: var(--cal-stats-column-width);
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.cal-stats-header-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  /* padding: 0.25rem; */
  min-width: var(--cal-stats-column-width);
  max-width: var(--cal-stats-column-width);
  background-color: var(--bs-tertiary-bg);
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
  font-size: 0.875em;
}

.cal-stats-header-container {
  z-index: 100;
}

.cal-stats-header > *:not(:last-child),
.student-row > *:not(:last-child),
.cal-stats-student-hours-aggregate > *:not(:last-child) {
  border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.cal-stats-header-cell.today {
  background-color: var(--bs-primary-bg-subtle);
}

.student-header-cell,
.student-data-cell {
  --cal-stats-column-width: 12rem;
}

.progress-header-cell,
.progress-data-cell {
  --cal-stats-column-width: 10rem;
}

.progress-hours-header-cell,
.progress-hours-data-cell {
  --cal-stats-column-width: 4rem;
}

.student-header > * {
  min-width: var(--cal-stats-column-width);
  max-width: var(--cal-stats-column-width);
  justify-content: start;
  align-items: center;
  display: flex;
  padding: 0.25rem 0.5rem;
  font-size: 0.75em;
  font-weight: 500;
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
  background-color: var(--bs-tertiary-bg);
}

.student-row {
  display: flex;
}

.student-row > * {
  min-width: var(--cal-stats-column-width);
  max-width: var(--cal-stats-column-width);
  display: flex;
  justify-content: start;
  align-items: center;
  padding: 0.25rem 0.5rem;
  font-size: 0.875em;
  background-color: var(--bs-tertiary-bg);
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.progress-hours-data-cell,
.progress-hours-header-cell {
  justify-content: center;
}

.student-row:has(+ .empty) .student-data-cell {
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-tertiary-bg);
}

.progress-data-cell {
  /* border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color); */
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.cal-stats-data-cell {
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: var(--cal-stats-column-width);
  max-width: var(--cal-stats-column-width);
}

.cal-stats-data-row {
  min-height: 2.5rem;
  max-height: 2.5rem;
  display: flex;
}

.cal-stats-data-row > *:not(:last-child) {
  border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.cal-stats-data-row .cal-stats-data-cell {
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.students-buffer-row {
  background-color: var(--bs-body-bg);
  width: 100%;
  height: 16rem;
}

.cal-stats-loading-container {
  height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
}

.cal-stats-data-cell[data-valid='false'] {
  opacity: 75%;
}

.cal-stats-data-cell[data-valid='true'] {
  color: white;
}

.cal-stats-data-cell.on-track {
  background-color: green;
}

.cal-stats-data-cell.off-track {
  background-color: red;
}

.cal-stats-data-cell.surplus-amount {
  background-color: #2cb9ff;
}

.attendance-session-container:not(:last-child) {
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
}

.attendance-history-session-header {
  font-size: 0.875em;
  padding-right: 0.5rem;
}

.attendance-badge.canceled {
  background-color: var(--bs-danger-border-subtle);
}

.attendance-badge.present {
  background-color: var(--tep-teal);
  color: var(--bs-white);
}

.session-attendance-details {
  border-left: 4px solid var(--tep-teal);
  padding-left: 1rem;
}

.session-attendance-details-label {
  color: var(--tep-teal);
  font-weight: 500;
}

.session-attendance-details-row {
  display: flex;
  gap: 0.5rem;
}
