/* dark-mode.css */

body.dark-mode {
    background-color: #121212;
    color: #e0e0e0;
}

body.dark-mode .navbar.bg-light {
    background-color: #2c2c2c !important;
    border-bottom: 1px solid #333;
}

body.dark-mode .navbar-light .navbar-brand,
body.dark-mode .navbar-light .navbar-nav .nav-link,
body.dark-mode .navbar-light .navbar-nav .nav-link.active {
    color: #e0e0e0;
}

body.dark-mode .navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(224, 224, 224, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.dark-mode .container {
    background-color: #1e1e1e;
    color: #e0e0e0;
}


.dark-mode nav ul li a {
    color: #e0e0e0;
}

.dark-mode nav ul li a:hover {
    background-color: #333;
}

.dark-mode .card {
    background-color: #2c2c2c;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}

.dark-mode .card-header {
    background-color: #333;
    color: #e0e0e0;
}

.dark-mode .card-body {
    color: #e0e0e0;
}

.dark-mode .table {
    color: #e0e0e0;
    background-color: #2c2c2c;
}

/* Ensure text color is light for all rows in a striped table */
body.dark-mode .table-striped tbody tr,
body.dark-mode .table-striped tbody tr td,
body.dark-mode .table-striped tbody tr th {
    color: #e0e0e0 !important;
}

.dark-mode .table-striped tbody tr:nth-of-type(odd) {
    background-color: #2c2c2c;
}

.dark-mode .table-striped tbody tr:nth-of-type(even) {
    background-color: #3a3a3a;
}

.dark-mode .table th,
.dark-mode .table td {
    border-color: #444;
}

.dark-mode .table-bordered {
    border-color: #444;
}

/* Make links in tables visible */
.dark-mode .table a {
    color: #bb86fc;
}
.dark-mode .table a:hover {
    color: #a275d9;
}

.dark-mode th {
    background-color: #333;
}

.dark-mode input[type="text"],
.dark-mode input[type="number"],
.dark-mode input[type="date"],
.dark-mode select {
    background-color: #333;
    color: #e0e0e0;
    border: 1px solid #555;
}

/* New Dark Mode Button Palette */
body.dark-mode .btn {
    color: #e0e0e0;
    background-color: #495057; /* Default dark grey */
    border-color: #495057;
}
body.dark-mode .btn:hover {
    background-color: #5a6268;
    border-color: #5a6268;
}

/* Primary - Add, Confirm */
body.dark-mode .btn-primary {
    color: #000000;
    background-color: #03dac6; /* Teal */
    border-color: #03dac6;
}
body.dark-mode .btn-primary:hover {
    background-color: #01bfa5;
    border-color: #01bfa5;
}

/* Danger - Delete */
body.dark-mode .btn-danger {
    color: #000000;
    background-color: #cf6679; /* Subdued Red */
    border-color: #cf6679;
}
body.dark-mode .btn-danger:hover {
    background-color: #b05261;
    border-color: #b05261;
}

/* Warning - Edit */
body.dark-mode .btn-warning {
    color: #000000;
    background-color: #ffc107; /* Amber */
    border-color: #ffc107;
}
body.dark-mode .btn-warning:hover {
    background-color: #ffca2c;
    border-color: #ffca2c;
}

/* Secondary - Neutral actions */
body.dark-mode .btn-secondary {
    color: #e0e0e0;
    background-color: #495057;
    border-color: #495057;
}
body.dark-mode .btn-secondary:hover {
    background-color: #5a6268;
    border-color: #5a6268;
}

/* Outline buttons */
body.dark-mode .btn-outline-primary {
    color: #03dac6;
    border-color: #03dac6;
}
body.dark-mode .btn-outline-primary:hover {
    color: #000000;
    background-color: #03dac6;
    border-color: #03dac6;
}

body.dark-mode .btn-outline-secondary {
    color: #e0e0e0;
    border-color: #495057;
}
body.dark-mode .btn-outline-secondary:hover {
    color: #ffffff;
    background-color: #495057;
    border-color: #495057;
}

body.dark-mode .btn-outline-danger {
    color: #cf6679;
    border-color: #cf6679;
}
body.dark-mode .btn-outline-danger:hover {
    color: #000000;
    background-color: #cf6679;
    border-color: #cf6679;
}

.dark-mode .pagination .page-link {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}
.dark-mode .pagination .page-link:hover {
    background-color: #3a3a3a;
}
.dark-mode .pagination .page-item.active .page-link {
    background-color: #bb86fc;
    border-color: #bb86fc;
    color: #121212;
}
.dark-mode .pagination .page-item.disabled .page-link {
    background-color: #3a3a3a;
    border-color: #444;
    color: #6c757d;
}

/* DataTables Pagination - More Specific Rules */
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button {
    color: #e0e0e0 !important;
    background: #495057 !important; /* Default dark grey */
    border: 1px solid #495057 !important;
}
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #5a6268 !important;
    border-color: #5a6268 !important;
}
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    color: #000000 !important;
    background: #03dac6 !important; /* Teal for current page */
    border-color: #03dac6 !important;
}
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    color: #6c757d !important;
    background: #3a3a3a !important;
    border-color: #444 !important;
}

/* Chart.js Dark Mode Styles */
body.dark-mode .card .card-title {
    color: #e0e0e0;
}

body.dark-mode .form-select {
    background-color: #333;
    color: #e0e0e0;
    border-color: #555;
}

body.dark-mode .form-label {
    color: #e0e0e0;
}

/* DataTables Info and Length */
.dark-mode .dataTables_wrapper .dataTables_length,
.dark-mode .dataTables_wrapper .dataTables_filter,
.dark-mode .dataTables_wrapper .dataTables_info,
.dark-mode .dataTables_wrapper .dataTables_processing,
.dark-mode .dataTables_wrapper .dataTables_paginate {
    color: #e0e0e0;
}
.dark-mode .dataTables_wrapper .dataTables_length select {
    background-color: #333;
    color: #e0e0e0;
    border: 1px solid #555;
}


.dark-mode .modal-content {
    background-color: #2c2c2c;
    border: 1px solid #555;
}

.dark-mode .close {
    color: #aaa;
}

.dark-mode .close:hover,
.dark-mode .close:focus {
    color: #fff;
}

/* --- FullCalendar Dark Mode --- */
.dark-mode #calendar-container {
    background-color: #2c2c2c;
}

.dark-mode .fc {
    color: #e0e0e0;
}

.dark-mode .fc .fc-col-header-cell-cushion {
    color: #e0e0e0;
}

.dark-mode .fc .fc-daygrid-day-number {
    color: #e0e0e0;
}

.dark-mode .fc .fc-day-today {
    background-color: #3a3a3a !important;
}

.dark-mode .fc-theme-bootstrap5 .fc-list-day-cushion {
    background-color: #333;
}

.dark-mode .fc-theme-bootstrap5 .table-bordered th,
.dark-mode .fc-theme-bootstrap5 .table-bordered td {
    border-color: #444;
}

.dark-mode .modal-content {
    background-color: #2c2c2c;
    color: #e0e0e0;
}

.dark-mode .modal-header,
.dark-mode .modal-footer {
    border-color: #444;
}

.dark-mode .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}