:root {
  --main-bg-color: #FFFFFF;
  --primary-color: #FFFFFF; /* White for active text on purple bg */
  --secondary-color: #4C2A85; /* Wimbledon Purple */
  --primary-text-color: #333;
  --secondary-text-color: #6c757d; /* Darker grey for secondary text in light mode */
  --sidebar-bg-color: #212529; /* Default dark grey for sidebar */
  --button-bg-color: #6f42c1; /* Default purple for buttons */
}

body {
    background-color: var(--main-bg-color);
    color: var(--primary-text-color);
}

body.dark-mode {
    --main-bg-color: #343a40;
    --primary-text-color: #f8f9fa;
    --secondary-text-color: #dee2e6;
    --sidebar-bg-color: #212529;
    --button-bg-color: #6f42c1;
    background-color: var(--main-bg-color);
    color: var(--primary-text-color);
}

body.dark-mode .card {
    background-color: #454d55;
    color: var(--primary-text-color);
    border-color: #6c757d;
}

body.dark-mode .card-header {
    background-color: #5a6268;
    border-color: #6c757d;
}

#wrapper {
    overflow-x: hidden;
}

#sidebar-wrapper {
    min-height: 100vh;
    margin-left: -15rem;
    -webkit-transition: margin .25s ease-out;
    -moz-transition: margin .25s ease-out;
    -o-transition: margin .25s ease-out;
    transition: margin .25s ease-out;
    background-color: var(--sidebar-bg-color) !important;
}

#sidebar-wrapper .sidebar-heading {
    padding: 0.875rem 1.25rem;
    font-size: 1.2rem;
    color: var(--secondary-text-color);
    background-color: var(--sidebar-bg-color) !important;
}

#sidebar-wrapper .list-group {
    width: 15rem;
}

#page-content-wrapper {
    flex-grow: 1;
}

#wrapper.toggled #sidebar-wrapper {
    margin-left: 0;
}

#menu-toggle {
    cursor: pointer;
}

.list-group-item {
    border: none;
    padding: 20px 30px;
    color: var(--secondary-text-color);
    background-color: var(--sidebar-bg-color) !important;
}

.list-group-item.active {
    background-color: var(--button-bg-color) !important;
    color: var(--primary-color);
    font-weight: bold;
    border: none;
}

.list-group-item:hover, .list-group-item:hover i {
    background-color: var(--button-bg-color) !important;
    color: var(--primary-color) !important;
}

.primary-text {
    color: var(--primary-color);
}

.second-text {
    color: var(--secondary-text-color);
}

.bg-dark {
    background-color: var(--secondary-color) !important;
}

.btn-primary, .btn-success {
    background-color: var(--button-bg-color) !important;
    border-color: var(--button-bg-color) !important;
    color: #FFFFFF !important; /* Ensure button text is white */
}

.btn-primary:hover, .btn-success:hover {
    filter: brightness(85%);
    background-color: var(--button-bg-color) !important;
    border-color: var(--button-bg-color) !important;
}


.navbar .nav-link.second-text {
    color: var(--secondary-text-color) !important;
}

.navbar .nav-link.second-text:hover {
    color: var(--primary-text-color) !important;
}

.login-page .btn-primary {
    background-color: var(--button-bg-color) !important;
    border-color: var(--button-bg-color) !important;
}

#login-button {
    background-color: black !important;
    border-color: black !important;
    color: white !important;
}

@media (min-width: 768px) {
    #sidebar-wrapper {
        margin-left: 0;
    }

    #page-content-wrapper {
        min-width: 0;
    }

    #wrapper.toggled #sidebar-wrapper {
        margin-left: -15rem;
    }
}