/* Dark Mode Styles */
body.dark-mode {
    background-color: #121212;
    color: #e0e0e0;
}

body.dark-mode .navbar-light {
    background-color: #121212 !important;
    border-bottom: none;
}

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

body.dark-mode .navbar-light .navbar-nav .nav-link:hover {
    color: #fff;
}

body.dark-mode .card {
    background-color: #1f1f1f;
    border-color: #333;
}

body.dark-mode .card-header {
    background-color: #2c2c2c;
    border-bottom-color: #333;
}

body.dark-mode .card-footer {
    background-color: #2c2c2c;
    border-top-color: #333;
}

body.dark-mode .card-body {
    background-color: #1f1f1f !important;
}

body.dark-mode .jumbotron {
    background-color: #1f1f1f;
    border: 1px solid #333;
}

body.dark-mode .list-group-item {
    background-color: #1f1f1f;
    border-color: #333;
}

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

body.dark-mode .table td,
body.dark-mode .table th {
    border-top-color: #333;
}

body.dark-mode .btn-light {
    background-color: #333;
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode .btn-light:hover {
    background-color: #444;
    border-color: #555;
    color: #fff;
}

body.dark-mode .dropdown-menu {
    background-color: #1f1f1f;
    border-color: #333;
}

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

body.dark-mode .dropdown-item:hover {
    background-color: #333;
    color: #fff;
}

body.dark-mode input.form-control,
body.dark-mode select.form-control,
body.dark-mode textarea.form-control {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode input.form-control:focus,
body.dark-mode select.form-control:focus,
body.dark-mode textarea.form-control:focus {
    background-color: #333;
    color: #fff;
    border-color: #555;
}

/* Specific overrides for this app */
body.dark-mode #logo span {
    color: #e0e0e0 !important;
}

body.dark-mode .text-muted {
    color: #aaa !important;
}

/* Landing Page Overrides */
body.dark-mode .description {
    color: #e0e0e0;
    -webkit-text-stroke-color: transparent;
    opacity: 0.8;
}

body.dark-mode .footer div[style*="color:black"] {
    color: #e0e0e0 !important;
}

body.dark-mode #fblink {
    color: #8b9dc3 !important;
    opacity: 1 !important;
}

/* About Page Overrides */
body.dark-mode .navbar-brand {
    color: #e0e0e0 !important;
}

/* Table Overrides */
body.dark-mode .table thead tr {
    background-color: #1f1f1f !important;
    color: #e0e0e0;
}

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

/* Graph Overrides */
body.dark-mode #chart-div {
    filter: invert(1) hue-rotate(180deg);
}

/* Checkbox Overrides for Dark Mode */
/* Keep the box border white (or light grey) when checked, instead of turning red */
body.dark-mode .pretty input:checked~.state.p-success-o label:before,
body.dark-mode .pretty.p-toggle .state.p-success-o label:before {
    border-color: #e0e0e0 !important;
}

/* Ensure the icon/checkmark is red (brand color) */
body.dark-mode .pretty input:checked~.state.p-success-o .icon,
body.dark-mode .pretty input:checked~.state.p-success-o .svg,
body.dark-mode .pretty input:checked~.state.p-success-o svg {
    color: var(--brand-color) !important;
    stroke: var(--brand-color) !important;
}

/* Modal Overrides */
body.dark-mode .modal-content {
    background-color: #1f1f1f;
    border-color: #333;
    color: #e0e0e0;
}

body.dark-mode .modal-header {
    border-bottom-color: #333;
}

body.dark-mode .modal-footer {
    border-top-color: #333;
}

body.dark-mode .close {
    color: #e0e0e0;
    text-shadow: none;
    opacity: 0.8;
}

body.dark-mode .close:hover {
    color: #fff;
    opacity: 1;
}

/* Radio Button Overrides */
body.dark-mode .radio.disabled {
    margin-bottom: 10px;
}

body.dark-mode .radio.disabled label {
    color: #e0e0e0;
    display: flex;
    align-items: center;
    cursor: default;
}

body.dark-mode .radio.disabled input[type="radio"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #555;
    border-radius: 50%;
    margin-right: 8px;
    outline: none;
    position: relative;
    background-color: transparent;
    cursor: default;
}

body.dark-mode .radio.disabled input[type="radio"]:disabled {
    opacity: 0.6;
}

body.dark-mode .radio.disabled input[type="radio"]:disabled:checked {
    opacity: 1;
    border-color: var(--brand-color);
}

body.dark-mode .radio.disabled input[type="radio"]:disabled:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--brand-color);
}
body.dark-mode .pagination .page-item .page-link {
    background-color: #2a2a2a;
    border-color: #444;
    color: #ccc;
}

body.dark-mode .pagination .page-item .page-link:hover {
    background-color: #3a3a3a;
    border-color: #555;
    color: #fff;
}

body.dark-mode .pagination .page-item.active .page-link {
    background-color: var(--brand-color);
    border-color: var(--brand-color);
    color: #fff;
}

body.dark-mode .pagination .page-item.disabled .page-link {
    background-color: #1e1e1e;
    border-color: #333;
    color: #555;
}
