body.dark-mode {
    background: #121212;
    color: #e0e0e0;
    --bs-body-color: #e0e0e0;
    --bs-body-bg: #121212;
    --bs-border-color: #3a3a3a;
}
body.dark-mode .ts-header {
    background: #333;
    color: #fff;
}
body.dark-mode .ts-header-title {
    color: #fff;
}
body.dark-mode .burger-menu span {
    background: #ccc;
}
body.dark-mode .menu-panel.glass {
    background: rgba(30,30,30,0.95);
    color: #e0e0e0;
}
body.dark-mode .menu-link {
    color: #e0e0e0;
}
body.dark-mode .menu-link:hover:not(.disabled) {
    background: #444;
    color: #fff;
}
body.dark-mode .menu-overlay {
    background: rgba(0,0,0,0.5);
}
body.dark-mode .ts-footer {
    background: #222;
    color: #ccc;
}
body.dark-mode .footer-link,
body.dark-mode .footer-home {
    color: #bbb;
}
body.dark-mode .footer-link:hover,
body.dark-mode .footer-home:hover {
    color: #fff;
}
body.dark-mode table,
body.dark-mode .ts-table {
    background: #1e1e1e;
    color: #e0e0e0;
}
body.dark-mode .table {
    --bs-table-color: #e0e0e0;
    --bs-table-bg: #1e1e1e;
    --bs-table-border-color: #3a3a3a;
    --bs-table-striped-bg: #242424;
    --bs-table-striped-color: #e0e0e0;
    --bs-table-active-bg: #2b2b2b;
    --bs-table-active-color: #fff;
    --bs-table-hover-bg: #2b2b2b;
    --bs-table-hover-color: #fff;
    color: #e0e0e0;
}
body.dark-mode .table > :not(caption) > * > * {
    background-color: var(--bs-table-bg);
    color: var(--bs-table-color);
    border-color: var(--bs-table-border-color);
}
body.dark-mode .table thead th {
    background-color: #2f2f2f;
    color: #fff;
}
body.dark-mode th,
body.dark-mode td,
body.dark-mode .ts-table th,
body.dark-mode .ts-table td {
    border-color: #444;
}
body.dark-mode tbody tr,
body.dark-mode .ts-table tbody tr {
    background: #1e1e1e;
}
body.dark-mode th,
body.dark-mode .ts-table th {
    background: #333;
    color: #fff;
}
body.dark-mode .bg-white,
body.dark-mode .bg-light {
    background-color: #1e1e1e !important;
    color: #e0e0e0;
}
body.dark-mode .submit-form-box,
body.dark-mode .pdf-preview-area {
    background-color: #1e1e1e;
    color: #e0e0e0;
    border-color: #444;
}
body.dark-mode #pdf-preview-container {
    background-color: #1b1b1b;
    border-color: #444;
}
body.dark-mode .form-control,
body.dark-mode .form-select,
body.dark-mode .ts-form-group input,
body.dark-mode .ts-form-group select {
    background-color: #2a2a2a;
    color: #e0e0e0;
    border-color: #444;
}
body.dark-mode .form-control::file-selector-button,
body.dark-mode .form-control::-webkit-file-upload-button {
    background-color: #3a3a3a;
    color: #e0e0e0;
    border-color: #555;
}
body.dark-mode .form-control:focus,
body.dark-mode .form-select:focus,
body.dark-mode .ts-form-group input:focus,
body.dark-mode .ts-form-group select:focus {
    border-color: #6a6a6a;
    box-shadow: 0 0 0 0.25rem rgba(120, 120, 120, 0.25);
}
body.dark-mode select option {
    background-color: #2a2a2a;
    color: #e0e0e0;
}
body.dark-mode label {
    color: #d6d6d6;
}
body.dark-mode .text-muted,
body.dark-mode .text-secondary {
    color: #b0b0b0 !important;
}
body.dark-mode .modal-content,
body.dark-mode .ts-modal,
body.dark-mode .ts-modal.material-modal {
    background-color: #1e1e1e;
    color: #e0e0e0;
    border-color: #444;
}
body.dark-mode .modal-wrapper {
    background-color: #1e1e1e;
    color: #e0e0e0;
    border: 1px solid #333;
}
body.dark-mode .modal-header,
body.dark-mode .modal-footer {
    border-color: #444;
}
body.dark-mode .btn-close {
    filter: invert(1);
}
body.dark-mode .ts-user-table-wrapper,
body.dark-mode .ts-attendance-wrapper {
    background: #1e1e1e;
}
body.dark-mode .ts-guide-lead,
body.dark-mode .ts-guide-list,
body.dark-mode .ts-guide-list li {
    color: #d8d8d8;
}
body.dark-mode .ts-guide-title {
    color: #9dbdff;
}
body.dark-mode .ts-guide-example {
    background: #2a2a2a;
    border-color: #3a3a3a;
    color: #e0e0e0;
}
body.dark-mode .ts-guide-download-link {
    color: #fff;
}
body.dark-mode .group-assignment-card,
body.dark-mode .group-card,
body.dark-mode .group-panel {
    background: #1f1f1f;
    border-color: #3a3a3a;
    color: #ededed;
}
body.dark-mode .group-assignment-lead,
body.dark-mode .group-student-meta,
body.dark-mode .group-student-pref,
body.dark-mode .group-card-sub,
body.dark-mode .group-panel-count {
    color: #cfcfcf;
}
body.dark-mode .group-panel-head {
    background: #2a2a2a;
    border-bottom-color: #3a3a3a;
}
body.dark-mode .group-stepper-item {
    background: #262626;
    border-color: #424242;
    color: #ededed;
}
body.dark-mode .group-stepper-item.active {
    background: #2457ba;
    border-color: #2457ba;
}
body.dark-mode .group-stepper-item.done {
    background: #22324d;
}
body.dark-mode .group-student-row {
    border-bottom-color: #333;
}
body.dark-mode .group-assignment-table th,
body.dark-mode .group-assignment-table td {
    background: #242424;
    color: #ededed;
    border-color: #3a3a3a;
}
body.dark-mode tr.clickable-row:hover {
    background: #333;
}
body.dark-mode .nav-tabs {
    border-bottom-color: #3a3a3a;
}
body.dark-mode .nav-tabs .nav-link {
    color: #cfcfcf;
    background: transparent;
    border-color: transparent;
}
body.dark-mode .nav-tabs .nav-link:hover,
body.dark-mode .nav-tabs .nav-link:focus {
    color: #fff;
    border-color: transparent transparent #4a4a4a;
}
body.dark-mode .nav-tabs .nav-link.active,
body.dark-mode .nav-tabs .nav-item.show .nav-link {
    color: #fff;
    background: #2a2a2a;
    border-color: #3a3a3a #3a3a3a #2a2a2a;
}
body.dark-mode .tab-btn {
    background: #2a2a2a;
    color: #cfcfcf;
}
body.dark-mode .tab-btn.active {
    background: #1f1f1f;
    color: #fff;
    border-bottom-color: #6aa9ff;
}
body.dark-mode .student-ticket {
    background: #1e1e1e;
    color: #e0e0e0;
    border-color: #3a3a3a;
    box-shadow: 0 1px 6px rgba(0,0,0,0.35);
}
body.dark-mode .student-ticket:hover {
    border-color: #4da3ff;
    box-shadow: 0 4px 16px rgba(77,163,255,0.25);
}
body.dark-mode .student-photo {
    background: #2a2a2a;
    border-color: #3a3a3a;
}
body.dark-mode .modal-title {
    color: #e0e0e0;
}
body.dark-mode .modal-header .btn-close {
    filter: invert(1);
}
body.dark-mode .card {
    background: #1e1e1e;
    color: #e0e0e0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
body.dark-mode .card:hover {
    background: #262626;
}
body.dark-mode .card.past-card {
    background: #2b2b2b !important;
    color: #b0b0b0 !important;
    border: 1px solid #3a3a3a;
    border-left: 5px solid #666;
}
body.dark-mode .card.future-card {
    background: #1e1e1e !important;
    color: #e0e0e0 !important;
    border: 1px solid #3a3a3a;
    border-left: 5px solid #2ecc71;
}
body.dark-mode .score-modal-float {
    background: #1b1b1b;
    color: #e0e0e0;
    border-left-color: #3a3a3a;
}
body.dark-mode .score-modal-header {
    border-bottom-color: #3a3a3a;
}
body.dark-mode .score-modal-float h5,
body.dark-mode .score-modal-float .score-total {
    color: #e0e0e0;
}
body.dark-mode .score-modal-float .btn-outline-secondary {
    color: #e0e0e0;
    border-color: #555;
}
body.dark-mode .score-modal-float .btn-outline-secondary:hover,
body.dark-mode .score-modal-float .btn-outline-secondary:focus {
    background: #333;
    color: #fff;
    border-color: #666;
}
body.dark-mode #pdf-area,
body.dark-mode #compare-pdf-area,
body.dark-mode #final-pdf-pages,
body.dark-mode #compare-final-pdf {
    background: #000 !important;
}
body.dark-mode .nfc-panel {
    background: #1e1e1e !important;
    color: #e0e0e0;
    border-left-color: #3a3a3a;
}
body.dark-mode .nfc-panel h4 {
    color: #e0e0e0;
}
body.dark-mode .nfc-panel .border {
    border-color: #3a3a3a !important;
}
body.dark-mode .attendance-override-side-panel {
    background: #1e1e1e;
    color: #e0e0e0;
    border-left-color: #806208;
}
body.dark-mode .attendance-override-side-header h4 {
    color: #f4f4f4;
}
body.dark-mode .attendance-override-side-panel .attendance-override-toggle {
    color: #e0e0e0;
}
body.dark-mode .attendance-override-side-panel .text-muted {
    color: #b0b0b0 !important;
}
body.dark-mode .attendance-column-visibility {
    background: #1f1f1f;
    border-color: #3a3a3a;
}
body.dark-mode .attendance-column-visibility-label,
body.dark-mode .attendance-column-visibility-toggle {
    color: #e0e0e0;
}
body.dark-mode .nfc-debug-panel {
    background: #1f1f1f;
    border-color: #3a3a3a;
}
body.dark-mode .nfc-debug-panel summary {
    color: #e0e0e0;
}
body.dark-mode .nfc-debug-log {
    background: #161616;
    border-color: #333;
    color: #d8d8d8;
}
body.dark-mode .score-column {
    background: #1e1e1e;
    border-color: #3a3a3a;
}
body.dark-mode .score-column h5 {
    color: #e0e0e0;
}
body.dark-mode .scoring-ticket {
    background: #262626;
    border-color: #3a3a3a;
    color: #e0e0e0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
}
body.dark-mode .scoring-ticket input {
    color: #e0e0e0;
}
body.dark-mode .scoring-ticket input::placeholder {
    color: #9a9a9a;
}
body.dark-mode .scoring-ticket input:focus {
    border-bottom-color: #6aa9ff;
}
body.dark-mode .board-divider {
    background: #2a6acb;
}
body.dark-mode .delete-btn {
    color: #ff6b6b;
}
body.dark-mode .profile-container {
    background: #1e1e1e;
    color: #e0e0e0;
    box-shadow: 0 6px 28px rgba(0, 0, 0, 0.45);
}
body.dark-mode .profile-container h2 {
    color: #e0e0e0;
}
body.dark-mode .profile-info p {
    color: #e0e0e0;
    border-left-color: #5b5b5b;
}
body.dark-mode .profile-info strong {
    color: #cfcfcf;
}
body.dark-mode .profile-submissions h4 {
    color: #e0e0e0;
}
body.dark-mode .profile-submissions li {
    color: #d0d0d0;
}
body.dark-mode .profile-submissions a {
    color: #7db5ff;
}
body.dark-mode .profile-submissions a:hover {
    color: #9ad0ff;
}
body.dark-mode .notification-toggle {
    color: #f4f4f4;
}
body.dark-mode .header-modal-card {
    background: #1f1f1f;
    color: #e0e0e0;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}
body.dark-mode .header-modal-head {
    border-bottom-color: #343434;
}
body.dark-mode .header-modal-close {
    color: #d0d0d0;
}
body.dark-mode .header-modal-empty,
body.dark-mode .notification-item-meta,
body.dark-mode .forget-request-existing-item {
    color: #bdbdbd;
}
body.dark-mode .notification-item {
    background: #262626;
    border-color: #3a3a3a;
}
body.dark-mode .notification-item.unread {
    border-color: #4c8dff;
    box-shadow: 0 0 0 1px rgba(76, 141, 255, 0.22);
}
body.dark-mode .forget-request-summary {
    background: #282828;
    color: #e0e0e0;
}
body.dark-mode .notification-detail-message-body {
    background: #282828;
    color: #e0e0e0;
}
body.dark-mode .notification-detail-form {
    background: #282828;
}
body.dark-mode .header-modal-card .form-control,
body.dark-mode .header-modal-card .form-select {
    background: #2a2a2a;
    color: #e0e0e0;
    border-color: #3a3a3a;
}
body.dark-mode .header-modal-card .form-control:focus,
body.dark-mode .header-modal-card .form-select:focus {
    background: #2a2a2a;
    color: #e0e0e0;
    border-color: #6aa9ff;
    box-shadow: 0 0 0 0.2rem rgba(106, 169, 255, 0.15);
}
