/* Light Mode Styles */
body {
  background-color: #f4f4f9;
  color: #333;
}

body header {
  background-color: #e0e0e0;
  color: #333;
}

body footer {
  background-color: #f9f9f9;
  color: #333;
}

body .card {
  background-color: #fff;
  color: #333;
  border: 1px solid #ccc;
}

body .card-header,
body .card-footer {
  background-color: #f8f9fa;
  color: #333;
}

body a {
  color: #333;
}

body.dark-mode a {
  color: #f5f5f5;
}

body .btn-outline-secondary {
  border-color: #6c757d;
  color: #333;
}

/* Dark Mode Styles */
body.dark-mode {
  background-color: #2c2c2c;
  color: #f5f5f5;
}

body.dark-mode header {
  background-color: #343a40;
  color: #f4f4f9;
}

body.dark-mode .navbar .navbar-brand h1 {
  border-bottom: 1px solid white;
}

body.dark-mode .navbar .navbar-brand h1,
body.dark-mode .navbar .navbar-brand h2 {
  color: #f4f4f9;
}

body.dark-mode .navbar a,
body.dark-mode .navbar i {
  color: #f4f4f9;
}

body.dark-mode .navbar {
  background-color: #343a40;
}

body.dark-mode .dropdown-menu {
  background-color: #343a40;
}

body.dark-mode .dropdown-menu .dropdown-item:hover {
  background-color: #2b3035;
  color: #f4f4f9;
}

body.dark-mode .dropdown-menu .dropdown-item,
body.dark-mode .nav-link,
body.dark-mode .nav-link:hover {
  color: #f4f4f9;
}

body.dark-mode .nav-tabs .nav-link.active:hover {
  color: #333333;
}

body .nav-link,
body .nav-link:hover {
  color: #333333;
}

body.dark-mode .navbar-toggler-icon {
  filter: invert();
}

body.dark-mode footer {
  background-color: #343a40;
  color: #f4f4f9;
}

body.dark-mode .footer-menu,
body.dark-mode .header-menu {
  align-items: center;
}

body.dark-mode .footer-menu a,
body.dark-mode .header-menu a {
  color: #f4f4f9;
}

body.dark-mode .footer-menu a:hover,
body.dark-mode .header-menu a:hover {
  color: #fff;
}

/* Calendar Dark Mode */
body.dark-mode .calendar-grid .month {
  background-color: #3c3c3c;
  color: #f4f4f9;
  border: 1px solid #555;
}

body.dark-mode .month.current-month {
  border: 2px solid white;
}

body.dark-mode .week-header {
  background-color: #555;
  color: #f4f4f9;
}

body.dark-mode .day {
  background-color: #444;
  color: #f4f4f9;
  border-color: #666;
}

body.dark-mode .day:hover {
  color: black;
}

body.dark-mode .day.event-day {
  font-weight: bold;
  color: black;
  background-color: var(--primary-color);
}

body.dark-mode .disabled-month,
body.dark-mode .disabled-day {
  background-color: #333;
  color: #888;
}

/* Modal Dark Mode */
body.dark-mode .modal-content {
  background-color: #3c3c3c;
  color: #f4f4f9;
  border: 1px solid #555;
}

body.dark-mode .modal-header,
body.dark-mode .modal-footer {
  background-color: #343a40;
  border-color: #555;
}

body.dark-mode .modal-title {
  color: #f4f4f9;
}

body.dark-mode .modal-subtitle {
  color: #afafaf;
}

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

body.dark-mode .accordion-button {
  background-color: #444 !important;
  color: #f4f4f9 !important;
  border-bottom: 1px solid #555 !important;
}

body.dark-mode .accordion-button:not(.collapsed) {
  background-color: #555 !important;
  color: #f4f4f9 !important;
}

body.dark-mode .accordion-body {
  background-color: #3c3c3c !important;
  color: #f4f4f9 !important;
}

body.dark-mode .accordion-item {
  border-color: #555 !important;
}

body.dark-mode .event-details .bi-calendar3,
body.dark-mode .event-details .bi-geo-alt,
body.dark-mode .event-details .bi-ticket-detailed {
  color: #f4f4f9;
}

body.dark-mode .event-details a {
  color: #f4f4f9 !important;
}

body.dark-mode .event-details a:hover {
  color: #f4f4f9 !important;
}

body.dark-mode .accordion-button::after {
  filter: invert(1);
}

body.dark-mode .social-links a {
  color: #f4f4f9 !important;
}

body.dark-mode .add-to-calendar a {
  color: #f4f4f9 !important;
}

body.dark-mode .add-to-calendar a:hover {
  color: #f4f4f9 !important;
}

body.dark-mode .btn-close {
  filter: invert(1);
}

body.dark-mode .card {
  background-color: #3c3c3c !important;
  color: #f4f4f9 !important;
  border: 1px solid #555 !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5) !important;
}

body.dark-mode .card-header {
  background-color: #444 !important;
  color: #f4f4f9 !important;
  font-weight: bold !important;
}

body.dark-mode .card-body {
  background-color: #3c3c3c;
  color: #f4f4f9;
}

body.dark-mode .card-footer {
  background-color: #444;
  color: #f4f4f9;
  border-top: 1px solid #555;
}

body.dark-mode .card-footer a {
  color: #f4f4f9;
}

/* Monthly picks cards */
body.dark-mode .monthly-pick-card {
  border-left: 4px solid #9F1D35 !important;
}

body.dark-mode .monthly-pick-title {
  color: #f4f4f9;
}

body.dark-mode .monthly-pick-title:hover {
  color: #9F1D35;
}

body.dark-mode .monthly-pick-day,
body.dark-mode .monthly-pick-month-label {
  color: #9F1D35;
}

body.dark-mode .monthly-pick-img-placeholder {
  background: linear-gradient(135deg, #3a2a2e, #2f343a);
}

/* List group items (global) */
body.dark-mode .list-group-item {
  background-color: #3a4047;
  color: #e8ebef;
  border-color: #4a525a;
}

body.dark-mode .list-group-item a {
  color: #f4f4f9;
}

body.dark-mode .list-group-item .text-muted {
  color: #b7bec7 !important;
}

/* Subscribed Notifications Modal (scoped) */
body.dark-mode #notifySubscriptionsModal .modal-content {
  background-color: #2f343a;
  border: 1px solid #4a525a;
}

body.dark-mode #notifySubscriptionsModal .modal-header {
  background-color: #343a40;
  border-bottom: 1px solid #4a525a;
}

body.dark-mode #notifySubscriptionsModal .modal-body {
  background-color: #2c3137;
}

body.dark-mode #notifySubscriptionsModal #subscriptions-list {
  border: 1px solid #4a525a;
  border-radius: 0.5rem;
  overflow: hidden;
}

body.dark-mode #notifySubscriptionsModal #subscriptions-list .list-group-item {
  background-color: #3a4047;
  color: #e8ebef;
  border-color: #4a525a;
}

body.dark-mode #notifySubscriptionsModal #subscriptions-list .list-group-item a {
  color: #f4f4f9;
}

body.dark-mode #notifySubscriptionsModal #subscriptions-list .list-group-item .text-muted {
  color: #b7bec7 !important;
}

body.dark-mode #notifySubscriptionsModal #subscriptions-empty {
  color: #b7bec7 !important;
}

body.dark-mode #notifySubscriptionsModal .btn-outline-danger {
  color: #ff8f8f;
  border-color: #ff8f8f;
}

body.dark-mode #notifySubscriptionsModal .btn-outline-danger:hover {
  color: #1f2328;
  background-color: #ff8f8f;
  border-color: #ff8f8f;
}

/* Subscriptions Modal Tabs */
body.dark-mode #notifySubscriptionsModal .nav-tabs {
  border-bottom-color: #4a525a;
}

body.dark-mode #notifySubscriptionsModal .nav-tabs .nav-link {
  color: #b7bec7;
}

body.dark-mode #notifySubscriptionsModal .nav-tabs .nav-link:hover {
  border-color: #4a525a #4a525a transparent;
  color: #e8ebef;
}

body.dark-mode #notifySubscriptionsModal .nav-tabs .nav-link.active {
  background-color: #2c3137;
  border-color: #4a525a #4a525a #2c3137;
  color: #f4f4f9;
}

/* Host subscriptions list (same styling as event subscriptions) */
body.dark-mode #notifySubscriptionsModal #host-subscriptions-list {
  border: 1px solid #4a525a;
  border-radius: 0.5rem;
  overflow: hidden;
}

body.dark-mode #notifySubscriptionsModal #host-subscriptions-list .list-group-item {
  background-color: #3a4047;
  color: #e8ebef;
  border-color: #4a525a;
}

body.dark-mode #notifySubscriptionsModal #host-subscriptions-list .list-group-item a {
  color: #f4f4f9;
}

body.dark-mode #notifySubscriptionsModal #host-subscriptions-list .list-group-item .text-muted {
  color: #b7bec7 !important;
}

body.dark-mode #notifySubscriptionsModal #host-subscriptions-empty {
  color: #b7bec7 !important;
}

/* Favorites Modal */
body.dark-mode #favoritesModal .modal-content {
  background-color: #2f343a;
  border: 1px solid #4a525a;
}

body.dark-mode #favoritesModal .modal-header {
  background-color: #343a40;
  border-bottom: 1px solid #4a525a;
}

body.dark-mode #favoritesModal .modal-body {
  background-color: #2c3137;
}

body.dark-mode #favoritesModal .list-group {
  border: 1px solid #4a525a;
  border-radius: 0.5rem;
  overflow: hidden;
}

body.dark-mode #favoritesModal .list-group-item {
  background-color: #3a4047;
  color: #e8ebef;
  border-color: #4a525a;
}

body.dark-mode #favoritesModal .list-group-item a {
  color: #f4f4f9;
}

body.dark-mode #favoritesModal .list-group-item .text-muted {
  color: #b7bec7 !important;
}

body.dark-mode #favoritesModal #favorites-empty {
  color: #b7bec7 !important;
}

body.dark-mode #favoritesModal .btn-outline-danger {
  color: #ff8f8f;
  border-color: #ff8f8f;
}

body.dark-mode #favoritesModal .btn-outline-danger:hover {
  color: #1f2328;
  background-color: #ff8f8f;
  border-color: #ff8f8f;
}

body.dark-mode .card-footer a:hover {
  color: #f4f4f9;
}

body.dark-mode .today-day {
  border: 3px solid white !important;
}

/* FORM */
body.dark-mode .form-select,
body.dark-mode .form-control,
body.dark-mode .form-check-input {
  background-color: gray !important;
}

body.dark-mode input,
body.dark-mode textarea {
  caret-color: whitesmoke;
}

body.dark-mode #toggle-view-btn {
  background-color: gray !important;
}

/* Dark Mode Table */
body.dark-mode .table {
  background-color: #343a40 !important;
  color: #f8f9fa !important;
  border-color: #454d55 !important;
}

body.dark-mode .table thead th {
  background-color: #454d55 !important;
  border-color: #565e64 !important;
  color: #f8f9fa !important;
}

body.dark-mode .table tbody td {
  color: #f8f9fa !important;
}

body.dark-mode .table tbody td a {
  color: whitesmoke;
}

body.dark-mode .table tfoot {
  background-color: #343a40;
}

body.dark-mode .table-striped>tbody>tr>td,
body.dark-mode .table-striped>tbody>tr>th {
  background-color: #2c3034;
}

body.dark-mode .table-striped>tbody>tr:nth-child(2n + 1)>td,
body.dark-mode .table-striped>tbody>tr:nth-child(2n + 1)>th {
  background-color: #1a1b1d;
}

body.dark-mode .edit-event-btn {
  color: white;
}

body.dark-mode .loading-overlay .text-dark {
  color: #f8f9fa !important;
}

:root {
  --install-bg: #1a1a1a;
  --install-text: #f0f0f0;
  --install-border: var(--primary-border-light);
}

body.dark-mode .view-toggle .btn {
  border-color: var(--primary-border-light);
  color: var(--primary-color);
  background-color: transparent;
}

body.dark-mode .view-toggle .btn:hover {
  background-color: var(--primary-color);
  color: #000;
}

body.dark-mode .view-toggle .btn.active {
  background-color: var(--primary-color);
  color: #000;
  border-color: var(--primary-color);
}

body.dark-mode .text-secondary {
  color: rgb(189 189 189) !important;
}

body.dark-mode .admin-card {
  background-color: #1e1e1e;
  color: #f8f9fa;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

body.dark-mode .admin-card img {
  background-color: #2a2a2a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  filter: brightness(0.95);
}

body.dark-mode .admin-card .card-footer {
  color: #adb5bd;
}

body.dark-mode .footer {
  background-color: #1a1a1a;
  color: #999;
}

body.dark-mode .text-muted {
  color: rgb(189 189 189) !important;
}

/* OFFCANVAS - Dark Mode */
body.dark-mode .offcanvas {
  background-color: #2c2c2c;
  color: #f5f5f5;
  border-left: 1px solid #444;
  border-right: 1px solid #444;
}

body.dark-mode .offcanvas-header {
  background-color: #343a40;
  border-bottom: 1px solid #555;
}

body.dark-mode .offcanvas-title {
  color: #f5f5f5;
}

body.dark-mode .offcanvas-body {
  background-color: #2c2c2c;
  color: #f5f5f5;
}

body.dark-mode .offcanvas .nav-link {
  color: #f5f5f5;
}

body.dark-mode .offcanvas .nav-link:hover {
  color: #ffffff;
  background-color: #3a3a3a;
}

/* Buttons & Forms inside Offcanvas */
body.dark-mode .offcanvas .form-select,
body.dark-mode .offcanvas .form-control {
  background-color: #444;
  color: #f5f5f5;
  border: 1px solid #666;
}

body.dark-mode .offcanvas .form-select:focus,
body.dark-mode .offcanvas .form-control:focus {
  background-color: #555;
  color: #fff;
  border-color: #888;
  box-shadow: none;
}

body.dark-mode .offcanvas .btn-outline-secondary {
  color: #f5f5f5;
  border-color: #888;
}

body.dark-mode .offcanvas .btn-outline-secondary:hover {
  background-color: #666;
  color: #fff;
}

/* Offcanvas close button */
body.dark-mode .offcanvas .btn-close {
  filter: invert(1);
}

body.dark-mode .offcanvas-backdrop.show {
  background-color: rgba(0, 0, 0, 0.7);
}

body.dark-mode {
  --bs-border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .input-group-text {
  background-color: #333;
  color: #f1f1f1;
  border: 1px solid #555;
}

body.dark-mode .input-group-text:hover {
  background-color: #444;
  color: #fff;
  border-color: #666;
}

body.dark-mode .gm-style .gm-style-iw-c,
body.dark-mode .gm-style .gm-style-iw-d,
body.dark-mode .gm-style .gm-style-iw-d a {
  color: #000 !important;
}

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

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

body.dark-mode .btn-outline-dark {
  color: #999;
  border-color: #666;
}

body.dark-mode .btn-outline-dark:hover,
body.dark-mode .btn-outline-dark:focus {
  background-color: #999;
  color: #000;
  border-color: #999;
}

body.dark-mode .alert.alert-secondary {
  background-color: #2c2c2c;
  color: #e0e0e0;
  border-color: #444;
}

/* Bookmark View */
body.dark-mode #bookmarkViewContainer h6 {
  color: #f8f9fa;
  border-color: #454d55 !important;
}

body.dark-mode #bookmarkViewContainer .table-sm {
  --bs-table-bg: #2c3034;
  --bs-table-striped-bg: #1a1b1d;
  --bs-table-hover-bg: #3a3f44;
  --bs-table-border-color: #454d55;
  color: #f8f9fa;
}

body.dark-mode #bookmarkViewContainer .table-sm thead th {
  background-color: #454d55 !important;
  color: #f8f9fa !important;
  border-color: #565e64 !important;
}

body.dark-mode #bookmarkViewContainer .table-sm tbody td {
  background-color: #2c3034 !important;
  color: #f8f9fa !important;
  border-color: #454d55 !important;
}

body.dark-mode #bookmarkViewContainer .table-sm tbody tr:nth-child(odd) td {
  background-color: #1a1b1d !important;
}

body.dark-mode #bookmarkViewContainer .table-sm tbody tr:hover td {
  background-color: #3a3f44 !important;
}

body.dark-mode #bookmarkViewContainer .table-sm tbody td a {
  color: #8bb9e0;
}

body.dark-mode #bookmarkViewContainer .table-sm tbody td a:hover {
  color: #aed4f5;
}

body.dark-mode #bookmarkViewContainer .badge.bg-secondary {
  background-color: #565e64 !important;
}

body.dark-mode .alert.alert-info {
  background-color: #1f3a4d;
  color: #d6e9f9;
  border-color: #355a72;
}

/* Breadcrumbs – Dark Mode */
body.dark-mode .breadcrumb {
  background: transparent;
  color: #b5b5b5;
}

body.dark-mode .breadcrumb-item+.breadcrumb-item::before {
  color: #5a5a5a;
}

body.dark-mode .breadcrumb-item a {
  color: #cccccc;
  text-decoration: none;
  transition: color 0.2s ease;
}

body.dark-mode .breadcrumb-item a:hover {
  color: #ffffff;
  text-decoration: underline;
}

body.dark-mode .breadcrumb-item.active {
  color: #7a7a7a;
  pointer-events: none;
}

body.dark-mode .view-example-link {
  color: #6ab4ff;
}

/* HOST-SPECIFIC DARK MODE */
body.dark-mode .hosts-page-header h1 {
  color: #f4f4f9;
}

body.dark-mode .hosts-filter-bar {
  background-color: #2c2c2c;
}

body.dark-mode .hosts-filter-bar .input-group-text {
  background-color: transparent;
  border-color: #555;
  color: #aaa;
}

body.dark-mode .hosts-filter-bar .form-control,
body.dark-mode .hosts-filter-bar .form-select {
  background-color: #333;
  border-color: #555;
  color: #e0e0e0;
}

body.dark-mode .host-card-name {
  color: #f0f0f0;
}

body.dark-mode .host-card-location {
  color: #aaa;
}

body.dark-mode .host-card-type-badge {
  background-color: rgba(159, 29, 53, 0.2);
  color: #e8a0b0;
}

body.dark-mode .host-logo-container {
  background: #333;
  border-color: #444;
}

body.dark-mode .premium-host-card {
  background-color: #1e1e1e;
  border: 1px solid #d4af37 !important;
  color: #f5f5dc;
}

body.dark-mode .simple-host-card {
  background-color: #1e1e1e;
  border: 1px solid #333 !important;
  color: #e0e0e0;
}

body.dark-mode .simple-host-card:hover {
  box-shadow: 0 2px 12px rgba(255, 255, 255, 0.06);
}

body.dark-mode .event-preview-card {
  color: #f0f0f0;
}

body.dark-mode .event-preview-card .card-title {
  color: #f0f0f0;
}

body.dark-mode .event-preview-card .text-muted {
  color: #ccc !important;
}

body.dark-mode .event-preview-card .bg-light {
  background-color: #2c2c2c !important;
}

/* BLOG DARK MODE */
body.dark-mode .badge.bg-light {
  background-color: #3a3a3a !important;
  color: #e0e0e0 !important;
  border-color: #555 !important;
}

body.dark-mode .card-clickable {
  background-color: #3c3c3c;
  border-color: #555;
}

body.dark-mode .card-clickable:hover {
  background-color: #424242;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4) !important;
}

body.dark-mode .card-clickable .card-title {
  color: #f5f5f5 !important;
}

body.dark-mode .card-clickable .card-text {
  color: #b5b5b5 !important;
}

body.dark-mode .card-clickable .border-top {
  border-color: #555 !important;
}

body.dark-mode .card-img-top.bg-light {
  background-color: #2a2a2a !important;
}

body.dark-mode .card-clickable .btn-outline-dark {
  color: #ccc;
  border-color: #666;
  background-color: transparent;
}

body.dark-mode .card-clickable:hover .btn-outline-dark {
  background-color: #666;
  color: #fff;
}

body.dark-mode .card-clickable.blog-pinned,
body.dark-mode .card.blog-pinned {
  border-left: 4px solid #9F1D35 !important;
}



body.dark-mode .event-type-icon {
  background-color: #555;
  border-color: #777;
  color: #f5f5f5;
}

body.dark-mode .no-logo img {
  filter: invert();
  opacity: 0.5;
}

body.dark-mode #backToTopBtn {
  background-color: #333;
  color: #fff;
}

body.dark-mode .nav-tabs a {
  color: var(--bs-nav-tabs-link-active-color) !important;
}

body.dark-mode .featured-blog-card {
  background: #3c3c3c;
  border-color: #555;
}

body.dark-mode .featured-blog-card-body p {
  color: #bbb;
}

body.dark-mode .quick-link-body p {
  color: #bbb;
}

body.dark-mode .age-gate-box {
  background-color: #2a2a2a;
  color: #e0e0e0;
}

body.dark-mode .age-gate-footer {
  color: #999;
}