.ace-schedule-section {
   margin: 2rem 0;
}

.ace-course-finder {
   background: #f7f9fc;
   border: 1px solid #d5dbe3;
   border-radius: 8px;
   padding: 1rem;
}

.ace-course-finder label {
   display: block;
   font-weight: 700;
   margin-bottom: .5rem;
}

.ace-finder-section {
   background: #fff;
}

.ace-course-finder-actions {
   margin-top: .75rem;
   display: flex;
   gap: .5rem;
   flex-wrap: wrap;
}

.ace-js .ace-find-btn {
   display: none;
}

.ace-results-summary {
   margin-top: 1rem;
   margin-bottom: .75rem;
}

.ace-sr-only {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.ace-result-card {
   border: 1px solid #d5dbe3;
   border-radius: 8px;
   padding: .9rem;
   background: #fff;
   margin-bottom: .75rem;
}

.ace-result-card h3 {
   margin: 0 0 .35rem;
   font-size: 1.05rem;
}

.ace-result-times {
   margin: 0;
   padding-left: 1rem;
}

.ace-result-times li + li {
   margin-top: .15rem;
}

.ace-summary-list {
   margin: .5rem 0 0;
   padding-left: 1rem;
}

.ace-summary-list li + li {
   margin-top: .35rem;
}

.ace-schedule-section h2 {
   margin-bottom: .75rem;
}

.ace-schedule-meta {
   margin-bottom: 1rem;
   color: #495057;
}

.ace-schedule-table-wrap {
   overflow-x: auto;
   border: 1px solid #d5dbe3;
}

.ace-schedule-table {
   margin-bottom: 0;
   min-width: 900px;
}

.ace-schedule-table caption {
   caption-side: top;
   padding: .75rem;
   color: #212529;
   font-weight: 700;
}

.ace-schedule-table th,
.ace-schedule-table td {
   vertical-align: top;
}

.ace-schedule-time {
   white-space: nowrap;
   width: 1%;
   background: #f7f9fc;
}

.ace-schedule-table td .ace-slot-list {
   margin: 0;
   padding-left: 0;
   list-style: none;
}

.ace-schedule-table td .ace-slot-list li {
   list-style: none;
   margin-left: 0;
}

.ace-schedule-table td .ace-slot-list li + li {
   margin-top: .35rem;
}

.ace-slot-entry {
   display: inline-block;
   background: #f8fafc;
   border: 1px solid #d5dbe3;
   border-radius: 999px;
   padding: .22rem .55rem;
   line-height: 1.35;
   color: #1f2933;
}

.ace-tutor-chip {
   appearance: none;
   font: inherit;
   text-align: left;
   cursor: pointer;
}

.ace-tutor-chip:focus {
   outline: 2px solid #0b5cab;
   outline-offset: 2px;
}

.ace-slot-note {
   font-weight: 700;
   background: #fff6f8;
   border-color: #d8a6b2;
   color: #8a1538;
}

.ace-slot-independent {
   font-weight: 700;
   font-size: 1.2rem;
   background: #edf6ff;
   border-color: #93c1ea;
   color: #005a9c;
}

.ace-slot-closed {
   font-weight: 500;
   background: #f8fafc;
   border-color: #d5dbe3;
   color: #8a94a3;
}

.ace-slot-match {
   border-color: #5f8f38;
   background: #f2f8ea;
   color: #1f4d1a;
   font-weight: 700;
}

.ace-filter-active .ace-slot-dim {
   opacity: .48;
}

.ace-secondary-link {
   margin-top: .75rem;
}

.ace-tutor-popover {
   position: absolute;
   z-index: 1200;
   display: none;
   max-width: 360px;
   width: calc(100% - 2rem);
   background: #ffffff;
   border: 1px solid #b8c0cc;
   border-radius: 8px;
   box-shadow: 0 12px 30px rgba(0, 0, 0, .16);
   padding: .75rem .85rem;
   padding-right: 2rem;
}

.ace-tutor-popover.is-open {
   display: block;
}

.ace-tutor-popover h3 {
   margin: 0 0 .4rem;
   font-size: 1rem;
   font-weight: 700;
}

.ace-tutor-popover p {
   margin: 0;
   font-size: .95rem;
}

.ace-tutor-popover p + p {
   margin-top: .45rem;
}

.ace-tutor-popover-close {
   appearance: none;
   border: 0;
   background: transparent;
   color: #0b5cab;
   font-weight: 700;
   padding: 0;
   margin: 0;
   cursor: pointer;
   position: absolute;
   top: .45rem;
   right: .6rem;
   line-height: 1;
   font-size: 1.1rem;
}

.ace-tutor-list details {
   border: 1px solid #d5dbe3;
   border-radius: 6px;
   padding: .75rem;
   margin-bottom: .6rem;
   background: #fff;
}

.ace-tutor-list summary {
   font-weight: 700;
   cursor: pointer;
}

.ace-course-list {
   margin-top: .6rem;
   margin-bottom: 0;
}
