diff --git a/src/components/BMDashboard/WeeklyProjectSummary/WeeklyProjectSummary.module.css b/src/components/BMDashboard/WeeklyProjectSummary/WeeklyProjectSummary.module.css
index 58eba45785..40e8166e6f 100644
--- a/src/components/BMDashboard/WeeklyProjectSummary/WeeklyProjectSummary.module.css
+++ b/src/components/BMDashboard/WeeklyProjectSummary/WeeklyProjectSummary.module.css
@@ -17,7 +17,6 @@
width: 95%;
margin: auto;
padding: 20px;
- background: var(--bg-color);
color: var(--text-color);
}
diff --git a/src/components/BMDashboard/WeeklyProjectSummary/sharedSelectStyles.js b/src/components/BMDashboard/WeeklyProjectSummary/sharedSelectStyles.js
new file mode 100644
index 0000000000..9c2076298b
--- /dev/null
+++ b/src/components/BMDashboard/WeeklyProjectSummary/sharedSelectStyles.js
@@ -0,0 +1,78 @@
+/**
+ * Shared react-select styles for BMDashboard charts.
+ * Single source of truth for dropdown theming so dark mode stays consistent
+ * across ExpenseBarChart, FinancialStatButtons, SupplierPerformanceGraph,
+ * InjuryCategoryBarChart and others.
+ */
+
+function getOptionBackground(state, darkMode) {
+ if (state.isSelected || state.isFocused) return '#0d55b3';
+ return darkMode ? '#22272e' : '#fff';
+}
+
+function getOptionTextColor(state, darkMode) {
+ if (state.isSelected || state.isFocused) return '#fff';
+ return darkMode ? '#fff' : '#232323';
+}
+
+export function buildChartSelectStyles(darkMode) {
+ return {
+ control: base => ({
+ ...base,
+ backgroundColor: darkMode ? '#22272e' : '#fff',
+ borderColor: darkMode ? '#375071' : '#ccc',
+ color: darkMode ? '#fff' : '#232323',
+ minHeight: 38,
+ fontSize: 12,
+ boxShadow: 'none',
+ }),
+ menu: base => ({
+ ...base,
+ backgroundColor: darkMode ? '#22272e' : '#fff',
+ fontSize: 12,
+ zIndex: 10001,
+ color: darkMode ? '#fff' : '#232323',
+ }),
+ menuList: base => ({
+ ...base,
+ backgroundColor: darkMode ? '#22272e' : '#fff',
+ color: darkMode ? '#fff' : '#232323',
+ padding: 0,
+ }),
+ option: (base, state) => ({
+ ...base,
+ backgroundColor: getOptionBackground(state, darkMode),
+ color: getOptionTextColor(state, darkMode),
+ fontSize: 12,
+ cursor: 'pointer',
+ }),
+ singleValue: base => ({
+ ...base,
+ color: darkMode ? '#fff' : '#232323',
+ }),
+ multiValue: base => ({
+ ...base,
+ backgroundColor: darkMode ? '#375071' : '#e2e7ee',
+ borderRadius: 4,
+ }),
+ multiValueLabel: base => ({
+ ...base,
+ color: darkMode ? '#fff' : '#333',
+ fontSize: 12,
+ padding: '2px 6px',
+ }),
+ multiValueRemove: base => ({
+ ...base,
+ color: darkMode ? '#fff' : '#333',
+ ':hover': { backgroundColor: '#0d55b3', color: '#fff' },
+ }),
+ placeholder: base => ({
+ ...base,
+ color: darkMode ? '#aaa' : '#5f6b7a',
+ }),
+ input: base => ({
+ ...base,
+ color: darkMode ? '#fff' : '#232323',
+ }),
+ };
+}
diff --git a/src/components/Badge/Badge.css b/src/components/Badge/Badge.css
deleted file mode 100644
index 5a49605cb6..0000000000
--- a/src/components/Badge/Badge.css
+++ /dev/null
@@ -1,168 +0,0 @@
-.btn--dark-sea-green {
- background-color: #c9d6c6 !important;
- border-color: #285739 !important;
- color: #285739 !important;
-}
-
-.badge_image_sm > img {
- border-radius: 50%;
- height: 50px;
- width: 50px;
- margin: 5px;
- overflow: inherit;
-}
-
-#rank-filter {
- width: 200px;
-}
-
-.badge_image_md > img {
- border-radius: 50%;
- height: 100px;
- width: 100px;
- overflow: inherit;
-}
-
-.badge_image_lg > img {
- border-radius: 50%;
- height: 200px;
- width: 200px;
- overflow: inherit;
-}
-
-.badge_image_mini > img {
- border-radius: 50%;
- height: 25px;
- width: 25px;
- overflow: inherit;
-}
-
-.badge_count {
- padding-top: 4px;
- border-radius: 50%;
- width: 22px;
- height: 22px;
- background: #007bff;
- color: #fff;
- text-align: center;
- font: 12px Arial, sans-serif;
- position: absolute;
- right: 2px;
- bottom: 2px;
- z-index: 10;
-}
-.bagde-box-shadow {
- box-shadow: 2px 2px 4px 1px lightgray;
-}
-.badge-box-shadow-dark {
- box-shadow: 2px 2px 4px 1px black;
-}
-/* This is just only for displaying 'Personal Max hours' badge hours position */
-.badge_count_personalmax {
- padding-top: 4px;
- border-radius: 45%;
- width: 20px;
- height: 22px;
- background: #800080;
- color: #fff;
- text-align: center;
- font: 11px Arial, sans-serif;
- position: absolute;
- right: 20px;
- bottom: 1px;
- z-index: 10;
-}
-
-.badge_count_3_digit {
- border-radius: 50%;
- padding: 1px 3px;
- background: #007bff;
- color: #fff;
- text-align: center;
- font-size: 9px;
- position: absolute;
- right: 5px;
- bottom: 5px;
- z-index: 10;
-}
-
-.new_badges {
- display: flex;
- flex-wrap: wrap;
- overflow-y: auto;
- height: 70px;
-}
-
-.old_badges {
- height: 220px;
- overflow-y: auto;
-}
-
-.badge_history_container {
- display: flex;
- flex-wrap: wrap;
- overflow-y: auto;
-}
-
-.badge_image_container {
- position: relative;
- height: 60px;
-}
-
-.badgemanagement-actions-cell {
- display: table-cell;
- padding-left: 10px;
-}
-
-.assign-badge-margin-top {
- margin-top: 15px;
-}
-
-.badge-message-background-success {
- background-color: #d4edda;
-}
-
-.badge-message-background-danger {
- background-color: #f8d7da;
-}
-
-.badge-message-text-success {
- color: #092b00;
-}
-
-.badge-message-text-danger {
- color: #a8071a;
-}
-
-.assign_badge_search_box {
- margin-bottom: 15px;
-}
-
-.badge_info_icon_text {
- text-align: left;
-}
-
-.widett {
- width: 500px;
-}
-
-#badgeEdit .form-group i {
- margin-left: 5px;
-}
-
-.badgeTooltip .tooltip-inner {
- background-color: #666;
-}
-
-.popover img {
- width: 100%;
- height: 100%;
- max-width: 120px;
- margin: 0 auto;
-}
-
-@media screen and (max-width: 544px) {
- .responsive-font-size {
- font-size: 0.75rem !important;
- }
-}
\ No newline at end of file
diff --git a/src/components/StudentBadgeGallery/StudentBadgeGallery.jsx b/src/components/StudentBadgeGallery/StudentBadgeGallery.jsx
index 6fa03559ad..3197bd2cf5 100644
--- a/src/components/StudentBadgeGallery/StudentBadgeGallery.jsx
+++ b/src/components/StudentBadgeGallery/StudentBadgeGallery.jsx
@@ -2,7 +2,6 @@ import { useState, useEffect } from 'react';
import { connect } from 'react-redux';
import { Row, Col, Card, CardHeader, CardBody, Spinner } from 'reactstrap';
import StudentBadgeImage from './StudentBadgeImage';
-import '../Badge/Badge.css'; // Reuse shared badge styling
import badgeIcon from '../SummaryBar/badges_icon.png';
import reportIcon from '../SummaryBar/report_icon.png';
import taskIcon from '../SummaryBar/task_icon.png';
@@ -159,7 +158,7 @@ function StudentBadgeGallery({ darkMode }) {
return (
darkMode ? 'text-light' : '';
-export const getBoxStyling = (darkMode) => darkMode ? boxStyleDark : boxStyle;
\ No newline at end of file
+export const getFontColor = darkMode => (darkMode ? 'text-light' : '');
+export const getBoxStyling = darkMode => (darkMode ? boxStyleDark : boxStyle);