html.theme-dark body {
    background-color: #121417;
    color: #e7ecf3;
}

html.theme-dark #app {
    background-color: #121417;
}

html.theme-dark .navbar,
html.theme-dark .bg-white {
    background-color: #1a1f26 !important;
    color: #e7ecf3 !important;
}

html.theme-dark .navbar,
html.theme-dark .border-end,
html.theme-dark .border-start,
html.theme-dark hr,
html.theme-dark .dropdown-divider {
    border-color: #2f3640 !important;
}

html.theme-dark .navbar-light .navbar-nav .nav-link,
html.theme-dark .navbar-light .navbar-text,
html.theme-dark .navbar-light .navbar-brand,
html.theme-dark .navbar-light .navbar-toggler,
html.theme-dark .dropdown-item,
html.theme-dark .dropdown-item-text {
    color: #e7ecf3 !important;
}

html.theme-dark .dropdown-menu {
    background-color: #1a1f26;
    border-color: #2f3640;
}

html.theme-dark .dropdown-item:hover,
html.theme-dark .dropdown-item:focus {
    background-color: #2a313b;
}

html.theme-dark .btn-outline-secondary {
    color: #dbe2ea;
    border-color: #5a6677;
}

html.theme-dark .btn-outline-secondary:hover,
html.theme-dark .btn-outline-secondary:focus {
    color: #f4f7fb;
    background-color: #3a4453;
    border-color: #6e7c90;
}

html.theme-dark .form-control {
    background-color: #11161c;
    color: #e7ecf3;
    border-color: #3f4a59;
}

html.theme-dark .form-control::placeholder {
    color: #8f9bab;
}

html.theme-dark .calendar-pane-shell {
    background-color: #161b22;
}

html.theme-dark .calendar-surface,
html.theme-dark .modal-content,
html.theme-dark .card,
html.theme-dark .table {
    background-color: #1a1f26 !important;
    color: #e7ecf3 !important;
}

html.theme-dark .text-muted {
    color: #9eabbc !important;
}

html.theme-dark .fc,
html.theme-dark .fc-theme-standard td,
html.theme-dark .fc-theme-standard th {
    border-color: #2f3640;
}

html.theme-dark .fc .fc-timegrid-slot,
html.theme-dark .fc .fc-scrollgrid,
html.theme-dark .fc .fc-timegrid-col,
html.theme-dark .fc .fc-timegrid-axis,
html.theme-dark .fc .fc-timegrid-divider {
    background-color: #1a1f26;
}

html.theme-dark .fc .fc-timegrid-axis-cushion,
html.theme-dark .fc .fc-col-header-cell-cushion,
html.theme-dark .fc .fc-timegrid-slot-label-cushion,
html.theme-dark .fc .fc-daygrid-day-number,
html.theme-dark .fc .fc-list-day-text,
html.theme-dark .fc .fc-list-day-side-text {
    color: #d7dfeb;
}

html.theme-dark .fc .fc-popover,
html.theme-dark .fc .fc-more-popover .fc-popover-body {
    background-color: #1a1f26;
    color: #e7ecf3;
    border-color: #2f3640;
}

html.theme-dark .modal-header,
html.theme-dark .modal-footer {
    border-color: #2f3640;
}

html.theme-dark .event-context-menu {
    background-color: #1f2630;
    border-color: #3a4554;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
}

html.theme-dark .event-context-menu__item {
    color: #e7ecf3;
}

html.theme-dark .event-context-menu__item:hover,
html.theme-dark .event-context-menu__item:focus {
    background-color: #2c3643;
    color: #f5f8fc;
}

html.theme-dark .fc .fc-event-mirror {
    background-color: #ff5a52 !important;
    border-color: #ff5a52 !important;
    opacity: 0.92;
}

html.theme-dark .unscheduled-course-item,
html.theme-dark .fc-event-mirror.unscheduled-course-item,
html.theme-dark .fc-unscheduled-drag-mirror-proxy {
    border-color: var(--event-opaque-color, #6c757d) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
    background-image: linear-gradient(to right, var(--event-opaque-color, #6c757d) 0 6px, transparent 6px);
    border-width: 1px;
    border-style: solid;
    border-radius: 0.35rem;
    overflow: hidden;
    filter: saturate(1.2) contrast(1.06);
}

html.theme-dark .unscheduled-course-item .fc-event-main-frame,
html.theme-dark .fc-event-mirror.unscheduled-course-item .fc-event-main-frame,
html.theme-dark .fc-unscheduled-drag-mirror-proxy .fc-event-main-frame {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0.5rem 0.65rem 0.55rem 0.7rem;
    text-align: left;
}

html.theme-dark .unscheduled-course-item .fc-event-main,
html.theme-dark .fc-event-mirror.unscheduled-course-item .fc-event-main,
html.theme-dark .fc-unscheduled-drag-mirror-proxy .fc-event-main {
    transform: none;
}

html.theme-dark .unscheduled-course-item__meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 0.1rem;
}

html.theme-dark .unscheduled-course-item__time {
    display: inline-block;
    color: inherit;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

html.theme-dark .unscheduled-course-item__divider {
    width: 100%;
    border: 0;
    border-top: 1px solid currentColor;
    opacity: 0.35;
    margin: 0 0 0.28rem;
}

html.theme-dark .unscheduled-course-item__title,
html.theme-dark .fc-event-mirror.unscheduled-course-item .unscheduled-course-item__title,
html.theme-dark .fc-unscheduled-drag-mirror-proxy .unscheduled-course-item__title {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.2;
    color: inherit;
    text-align: left;
}

html.theme-dark .fc .fc-highlight {
    background-color: rgba(255, 90, 82, 0.28) !important;
}

html.theme-dark .fc .fc-timegrid-event {
    border-color: var(--event-opaque-color, #6c757d) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
    background-image: linear-gradient(to right, var(--event-opaque-color, #6c757d) 0 6px, transparent 6px);
    filter: saturate(1.2) contrast(1.06);
}

html.theme-dark .fc .fc-timegrid-event.is-selected,
html.theme-dark .fc .fc-list-event.is-selected {
    filter: brightness(0.95) saturate(1.2) contrast(1.06) !important;
}

html.theme-dark .fc .fc-timegrid-event.is-selected:hover,
html.theme-dark .fc .fc-timegrid-event.is-selected:active,
html.theme-dark .fc .fc-timegrid-event.is-selected:focus,
html.theme-dark .fc .fc-timegrid-event.is-selected:focus-visible,
html.theme-dark .fc .fc-timegrid-event.fc-event-selected,
html.theme-dark .fc .fc-timegrid-event.fc-event-selected:hover,
html.theme-dark .fc .fc-timegrid-event.fc-event-selected:active,
html.theme-dark .fc .fc-timegrid-event.fc-event-selected:focus,
html.theme-dark .fc .fc-timegrid-event.fc-event-selected:focus-visible,
html.theme-dark .fc .fc-list-event.is-selected:hover,
html.theme-dark .fc .fc-list-event.is-selected:active,
html.theme-dark .fc .fc-list-event.is-selected:focus,
html.theme-dark .fc .fc-list-event.is-selected:focus-visible,
html.theme-dark .fc .fc-list-event.fc-event-selected,
html.theme-dark .fc .fc-list-event.fc-event-selected:hover,
html.theme-dark .fc .fc-list-event.fc-event-selected:active,
html.theme-dark .fc .fc-list-event.fc-event-selected:focus,
html.theme-dark .fc .fc-list-event.fc-event-selected:focus-visible {
    filter: brightness(0.95) saturate(1.2) contrast(1.06) !important;
}

html.theme-dark .fc .fc-timegrid-event:hover,
html.theme-dark .fc .fc-timegrid-event:active,
html.theme-dark .fc .fc-timegrid-event:focus,
html.theme-dark .fc .fc-timegrid-event:focus-visible {
    filter: saturate(1.2) contrast(1.06) !important;
    opacity: 1 !important;
    outline: none !important;
}

html.theme-dark .fc .fc-timegrid-event .fc-event-main-frame {
    padding-left: 10px;
    text-align: left;
}

html.theme-dark .fc .fc-timegrid-event .fc-event-main {
    transform: translateX(2px);
}

html.theme-dark .fc .fc-timegrid-event .fc-event-time {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    opacity: 0.95;
    text-align: left;
    display: inline-block;
    border-bottom: 1px solid currentColor;
    margin-left: -12px;
    padding-left: 12px;
    padding-right: 6px;
    padding-bottom: 2px;
    margin-bottom: 2px;
}

html.theme-dark .blockoff-creation-header {
    border-color: #2f3640;
    background: linear-gradient(145deg, #232c37 0%, #1f2731 100%);
}

html.theme-dark .blockoff-creation-title {
    color: #f1f5fb;
}

html.theme-dark .blockoff-creation-subtitle {
    color: #a2b2c4;
}

html.theme-dark .blockoff-creation-target {
    background: linear-gradient(145deg, #1f2630 0%, #1a212b 100%);
    border-color: #3a4554;
    color: #e7ecf3;
}

html.theme-dark .blockoff-creation-target-label,
html.theme-dark .blockoff-creation-label {
    color: #9cadc0;
}

html.theme-dark .blockoff-days-grid {
    background-color: #1a1f26;
    border-color: #3a4554;
}

html.theme-dark .blockoff-days-grid .form-check-label {
    color: #e7ecf3;
}

html.theme-dark .fc .fc-timegrid-event .fc-event-title {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-align: left;
}

html.theme-dark .fc .fc-event-mirror .fc-timegrid-more-link {
    display: none !important;
}

html.theme-dark .event-details-header {
    border-bottom: 1px solid #2f3845;
    background: linear-gradient(140deg, #1e252f 0%, #1b222c 100%);
}

html.theme-dark .event-details-title {
    color: #eef3fb;
}

html.theme-dark .event-details-subtitle {
    color: #9bacbf;
}

html.theme-dark .event-details-hero {
    border-color: #334052;
    background: linear-gradient(145deg, #1f2732 0%, #1a212b 100%);
}

html.theme-dark .event-details-eyebrow {
    color: #89a4c8;
}

html.theme-dark .event-details-course {
    color: #f0f5fc;
}

html.theme-dark .event-details-meta {
    color: #a7b8cd;
}

html.theme-dark .event-details-hero-icon {
    border-color: #3e4d62;
    background: #202a36;
    color: #b9d1f5;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

html.theme-dark .event-details-badge {
    background-color: #2a3f63;
    color: #cfe2ff;
}

html.theme-dark .event-details-card {
    border-color: #334052;
    background-color: #1c232d;
}

html.theme-dark .event-details-label {
    color: #92a7c3;
}

html.theme-dark .event-details-value {
    color: #e7eef8;
}

html.theme-dark .event-details-edit-btn {
    border: 0;
    background: transparent;
    color: #b2c4dc;
    box-shadow: none;
}

html.theme-dark .event-details-edit-btn:hover,
html.theme-dark .event-details-edit-btn:focus,
html.theme-dark .event-details-edit-btn:focus-visible,
html.theme-dark .event-details-edit-btn:active {
    border: 0;
    background-color: #253142;
    color: #eaf2ff;
    box-shadow: none;
}

html.theme-dark .event-details-selector-modal .list-group-item {
    background-color: #1c232d;
    color: #e7eef8;
    border-color: #334052;
}

html.theme-dark .event-details-selector-modal .list-group-item:hover,
html.theme-dark .event-details-selector-modal .list-group-item:focus {
    background-color: #253142;
    color: #f5f9ff;
}

html.theme-dark .event-details-days-grid {
    background: linear-gradient(155deg, #1b2129 0%, #181e27 100%);
    border-color: #3a4554;
}

html.theme-dark .event-details-day-chip {
    border-color: #465466;
    background-color: #1f2731;
    color: #e8eef7;
}

html.theme-dark .event-details-day-chip:hover {
    border-color: #6a7f9f;
    background-color: #263242;
}

html.theme-dark .event-details-day-input:focus-visible + .event-details-day-chip {
    outline-color: #7ea4de;
}

html.theme-dark .event-details-day-input:checked + .event-details-day-chip {
    border-color: #5a9cf5;
    background: linear-gradient(155deg, #3f7fd9 0%, #2f61b3 100%);
    color: #f7fbff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
}
