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

/* Cards */
body.dark-mode .card {
    background-color: #1e1e1e;
    border-color: #333;
}

body.dark-mode .card-header,
body.dark-mode .card-footer {
    background-color: #262626;
    border-color: #333;
}

/* Tables */
body.dark-mode .table {
    color: #f0f0f0;
}

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

body.dark-mode .table-hover tbody tr:hover {
    background-color: #2a2a2a;
}

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

/* Forms */
body.dark-mode .form-control,
body.dark-mode .form-select {
    background-color: #2c2c2c;
    border-color: #333;
    color: #f0f0f0;
}

body.dark-mode .form-control:focus,
body.dark-mode .form-select:focus {
    background-color: #2c2c2c;
    border-color: #555;
    color: #f0f0f0;
}

body.dark-mode .form-check-input {
    background-color: #2c2c2c;
    border-color: #555;
}

/* Alerts */
body.dark-mode .alert-info {
    background-color: #17292e;
    color: #8fd5e8;
    border-color: #1e3a41;
}

body.dark-mode .alert-warning {
    background-color: #302c1a;
    color: #e8d08f;
    border-color: #41381e;
}

body.dark-mode .alert-success {
    background-color: #1a3020;
    color: #8fe8a2;
    border-color: #255230;
}

body.dark-mode .alert-danger {
    background-color: #301a1a;
    color: #e88f8f;
    border-color: #512525;
}

/* Navigation */
body.dark-mode .navbar {
    background-color: #1e1e1e !important;
    border-color: #333;
}

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

body.dark-mode .navbar-nav .nav-link:hover,
body.dark-mode .navbar-nav .nav-link:focus {
    color: #ffffff;
}

body.dark-mode .navbar-nav .active > .nav-link,
body.dark-mode .navbar-nav .nav-link.active {
    color: #ffffff;
}

/* Badges */
body.dark-mode .badge.bg-secondary {
    background-color: #4a4a4a !important;
}

body.dark-mode .badge.bg-primary {
    background-color: #1e3a5a !important;
}

body.dark-mode .badge.bg-success {
    background-color: #1a472e !important;
}

body.dark-mode .badge.bg-danger {
    background-color: #6b1e1e !important;
}

body.dark-mode .badge.bg-warning {
    background-color: #6b5e1e !important;
}

/* Buttons */
body.dark-mode .btn-primary {
    background-color: #1e3a5a;
    border-color: #1e3a5a;
}

body.dark-mode .btn-primary:hover,
body.dark-mode .btn-primary:focus {
    background-color: #18304d;
    border-color: #18304d;
}

body.dark-mode .btn-secondary {
    background-color: #4a4a4a;
    border-color: #4a4a4a;
}

body.dark-mode .btn-secondary:hover,
body.dark-mode .btn-secondary:focus {
    background-color: #3e3e3e;
    border-color: #3e3e3e;
}

body.dark-mode .btn-success {
    background-color: #1a472e;
    border-color: #1a472e;
}

body.dark-mode .btn-success:hover,
body.dark-mode .btn-success:focus {
    background-color: #143924;
    border-color: #143924;
}

body.dark-mode .btn-danger {
    background-color: #6b1e1e;
    border-color: #6b1e1e;
}

body.dark-mode .btn-danger:hover,
body.dark-mode .btn-danger:focus {
    background-color: #591919;
    border-color: #591919;
}

body.dark-mode .btn-warning {
    background-color: #6b5e1e;
    border-color: #6b5e1e;
}

body.dark-mode .btn-warning:hover,
body.dark-mode .btn-warning:focus {
    background-color: #594f19;
    border-color: #594f19;
}

body.dark-mode .btn-outline-primary {
    color: #6ea8fe;
    border-color: #6ea8fe;
}

body.dark-mode .btn-outline-primary:hover,
body.dark-mode .btn-outline-primary:focus {
    background-color: #1e3a5a;
    border-color: #1e3a5a;
}

body.dark-mode .btn-outline-secondary {
    color: #a7acb1;
    border-color: #a7acb1;
}

body.dark-mode .btn-outline-secondary:hover,
body.dark-mode .btn-outline-secondary:focus {
    background-color: #4a4a4a;
    border-color: #4a4a4a;
}

body.dark-mode .btn-outline-success {
    color: #75b798;
    border-color: #75b798;
}

body.dark-mode .btn-outline-success:hover,
body.dark-mode .btn-outline-success:focus {
    background-color: #1a472e;
    border-color: #1a472e;
}

/* Passenger card styling for dark mode */
body.dark-mode .passenger-card {
    background-color: #2a2a2a;
    border-color: #333;
}

body.dark-mode .passenger-card.selected {
    background-color: #1e3a5a;
    border-color: #1e3a5a;
}

/* Placeholder text */
body.dark-mode ::placeholder {
    color: #999;
}

body.dark-mode .form-control::-webkit-input-placeholder {
    color: #999;
}

body.dark-mode .form-control::-moz-placeholder {
    color: #999;
}

body.dark-mode .form-control::-ms-input-placeholder {
    color: #999;
}

/* Text muted */
body.dark-mode .text-muted {
    color: #a7acb1 !important;
}

/* Links */
body.dark-mode a {
    color: #6ea8fe;
}

body.dark-mode a:hover {
    color: #8bb8fe;
}

/* Wait time colors */
body.dark-mode .wait-time-warning {
    color: #e8d08f !important;
}

body.dark-mode .wait-time-danger {
    color: #e88f8f !important;
}

/* Dark mode toggle button */
.dark-mode-toggle {
    cursor: pointer;
    width: 45px;
    height: 25px;
    position: relative;
    display: inline-block;
}

.dark-mode-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}

.dark-mode-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: 25px;
}

.dark-mode-slider:before {
    position: absolute;
    content: "";
    height: 19px;
    width: 19px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .dark-mode-slider {
    background-color: #2196F3;
}

input:checked + .dark-mode-slider:before {
    transform: translateX(20px);
}