:root {
  color-scheme: dark;
  --bs-body-bg: #050505;
  --bs-body-color: #f5f5f5;
  --bs-tertiary-bg: #111111;
  --bs-secondary-bg: #151515;
  --bs-border-color: #333333;
}
html, body, #panel, #content, .container, .account, .categories, .category, .topic, .posts, .composer {
  background-color: #050505 !important;
  color: #f5f5f5 !important;
}
body, p, span, div, li, label, small, strong, em, h1, h2, h3, h4, h5, h6,
.topic-title, .category-title, .post-content, .content, .username, .nav-text {
  color: #f5f5f5 !important;
}
a, .btn-link, .breadcrumb a {
  color: #66b3ff !important;
}
.navbar, .sidebar, .offcanvas, .dropdown-menu, .modal-content, .card, .list-group-item,
.topic-list-item, .category-item, .posts-list-item, .post-container, .composer, .form-control, .form-select {
  background-color: #111111 !important;
  color: #f5f5f5 !important;
  border-color: #333333 !important;
}
.form-control::placeholder {
  color: #aaaaaa !important;
}
.btn-primary {
  background-color: #2563eb !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
}
.text-muted, .text-secondary, .description, .help-block, .form-text {
  color: #c7c7c7 !important;
}
hr, .border, .border-bottom, .border-top {
  border-color: #333333 !important;
}

/* Fix empty category / announcement panels contrast */
.alert,
.alert-info,
.alert-primary,
.empty-state,
.empty-topic-list,
.category .alert,
[component="category/no_topics"],
[component="category/no_topics"] .alert,
[component="category/no_topics"] * {
  background-color: #111827 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
.alert a,
.alert-info a,
.alert-primary a,
.empty-state a,
.empty-topic-list a,
[component="category/no_topics"] a {
  color: #93c5fd !important;
  text-decoration: underline;
}
.bg-info,
.bg-primary,
.bg-info-subtle,
.bg-primary-subtle,
.text-bg-info,
.text-bg-primary {
  background-color: #111827 !important;
  color: #f9fafb !important;
}
.text-info,
.text-primary-emphasis,
.text-info-emphasis {
  color: #f9fafb !important;
}

/* Admin / Settings visibility fixes */
.admin, .admin *,
.acp, .acp *,
.page-admin, .page-admin *,
.page-admin-settings, .page-admin-settings *,
.admin-settings, .admin-settings *,
.settings, .settings *,
[component="admin"], [component="admin"] *,
[component="settings"], [component="settings"] * {
  color: #f9fafb !important;
}
.admin .card,
.acp .card,
.page-admin .card,
.page-admin-settings .card,
.admin .panel,
.acp .panel,
.page-admin .panel,
.admin .well,
.acp .well,
.admin .section,
.acp .section,
.admin .form-group,
.acp .form-group,
.admin .list-group-item,
.acp .list-group-item,
.admin .nav-tabs,
.acp .nav-tabs,
.admin .tab-content,
.acp .tab-content {
  background-color: #111827 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
.admin input,
.admin textarea,
.admin select,
.acp input,
.acp textarea,
.acp select,
.page-admin input,
.page-admin textarea,
.page-admin select,
.form-control,
.form-select,
.input-group-text,
select option {
  background-color: #0b1220 !important;
  color: #f9fafb !important;
  border-color: #4b5563 !important;
}
.admin input:focus,
.admin textarea:focus,
.admin select:focus,
.acp input:focus,
.acp textarea:focus,
.acp select:focus,
.form-control:focus,
.form-select:focus {
  background-color: #0b1220 !important;
  color: #ffffff !important;
  border-color: #60a5fa !important;
  box-shadow: 0 0 0 .2rem rgba(96,165,250,.25) !important;
}
.admin .nav-link,
.acp .nav-link,
.page-admin .nav-link,
.admin .dropdown-item,
.acp .dropdown-item {
  color: #e5e7eb !important;
}
.admin .nav-link.active,
.acp .nav-link.active,
.page-admin .nav-link.active,
.admin .dropdown-item:hover,
.acp .dropdown-item:hover {
  background-color: #1f2937 !important;
  color: #ffffff !important;
}
.admin .text-muted,
.acp .text-muted,
.page-admin .text-muted,
.admin .help-block,
.acp .help-block,
.admin .form-text,
.acp .form-text,
.admin small,
.acp small {
  color: #d1d5db !important;
}
.admin table,
.acp table,
.admin .table,
.acp .table {
  --bs-table-bg: #111827 !important;
  --bs-table-color: #f9fafb !important;
  --bs-table-border-color: #374151 !important;
  color: #f9fafb !important;
}
.admin .btn-secondary,
.acp .btn-secondary,
.admin .btn-light,
.acp .btn-light,
.admin .btn-outline-secondary,
.acp .btn-outline-secondary {
  background-color: #1f2937 !important;
  border-color: #4b5563 !important;
  color: #f9fafb !important;
}

/* ACP left sidebar fix: override Bootstrap text-bg-light */
#sidebar-left,
#sidebar-left.text-bg-light,
.admin #sidebar-left,
.page-admin #sidebar-left,
body.admin #sidebar-left {
  background-color: #050505 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
#sidebar-left *,
#sidebar-left .btn,
#sidebar-left .btn-ghost,
#sidebar-left .accordion,
#sidebar-left .accordion *,
#sidebar-left a,
#sidebar-left button,
#sidebar-left span,
#sidebar-left i {
  color: #f9fafb !important;
}
#sidebar-left .btn:hover,
#sidebar-left .btn:focus,
#sidebar-left .active,
#sidebar-left .accordion-button:not(.collapsed),
#sidebar-left a.active,
#sidebar-left button.active {
  background-color: #1f2937 !important;
  color: #ffffff !important;
}
#sidebar-left .form-control,
#sidebar-left input,
#sidebar-left .acp-search input {
  background-color: #0b1220 !important;
  color: #f9fafb !important;
  border-color: #4b5563 !important;
}
#sidebar-left .form-control::placeholder,
#sidebar-left input::placeholder {
  color: #cbd5e1 !important;
}

/* Red sidebars: left/right expanded/sidebar areas */
#sidebar-left,
#sidebar-left.text-bg-light,
.offcanvas,
.offcanvas-start,
.offcanvas-end,
.sidebar,
.sidebar-left,
.sidebar-right,
[component="sidebar"],
[component="sidebar"] *,
[component="settings/toc"],
[component="settings/toc"] nav,
[component="settings/toc/list"],
[component="category/sidebar"],
[component="category/sidebar"] *,
[component="topic/sidebar"],
[component="topic/sidebar"] * {
  background-color: #991b1b !important;
  color: #ffffff !important;
  border-color: #ef4444 !important;
}
#sidebar-left *,
.offcanvas *,
.sidebar *,
[component="settings/toc"] *,
[component="settings/toc/list"] *,
[component="category/sidebar"] *,
[component="topic/sidebar"] * {
  color: #ffffff !important;
}
#sidebar-left .active,
#sidebar-left .btn:hover,
#sidebar-left .btn:focus,
#sidebar-left a:hover,
#sidebar-left button:hover,
.offcanvas .active,
.offcanvas .btn:hover,
.offcanvas a:hover,
.offcanvas button:hover,
.sidebar .active,
.sidebar a:hover,
.sidebar button:hover,
[component="settings/toc/list"] .active,
[component="settings/toc/list"] a:hover {
  background-color: #7f1d1d !important;
  color: #ffffff !important;
}
#sidebar-left input,
#sidebar-left .form-control,
.offcanvas input,
.offcanvas .form-control,
.sidebar input,
.sidebar .form-control {
  background-color: #450a0a !important;
  color: #ffffff !important;
  border-color: #f87171 !important;
}
#sidebar-left input::placeholder,
.offcanvas input::placeholder,
.sidebar input::placeholder {
  color: #fecaca !important;
}

/* Force ACP left sidebar to red */
body.admin #sidebar-left.vh-100.sticky-top.start-0.d-none.d-lg-flex.text-bg-light.p-2.flex-column.justify-content-start.text-sm.border-end.gap-1.flex-shrink-0,
body.admin #sidebar-left,
html body.admin #sidebar-left,
.page-admin #sidebar-left,
.admin #sidebar-left {
  background: #991b1b !important;
  background-color: #991b1b !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: #ef4444 !important;
}
body.admin #sidebar-left *,
.page-admin #sidebar-left *,
.admin #sidebar-left * {
  color: #ffffff !important;
}
body.admin #sidebar-left .active,
.page-admin #sidebar-left .active,
.admin #sidebar-left .active {
  background-color: #7f1d1d !important;
  color: #ffffff !important;
}

/* Forum page sidebars */
body.page-categories nav.sidebar-left,
body.page-categories nav.sidebar-right,
body.page-home nav.sidebar-left,
body.page-home nav.sidebar-right,
body.page-topic nav.sidebar-left,
body.page-topic nav.sidebar-right,
body.page-category nav.sidebar-left,
body.page-category nav.sidebar-right,
nav.sidebar.sidebar-left,
nav.sidebar.sidebar-right {
  background: #991b1b !important;
  background-color: #991b1b !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: #ef4444 !important;
}
body.page-categories nav.sidebar-left *,
body.page-categories nav.sidebar-right *,
body.page-home nav.sidebar-left *,
body.page-home nav.sidebar-right *,
body.page-topic nav.sidebar-left *,
body.page-topic nav.sidebar-right *,
body.page-category nav.sidebar-left *,
body.page-category nav.sidebar-right *,
nav.sidebar.sidebar-left *,
nav.sidebar.sidebar-right * {
  color: #ffffff !important;
}
body.page-categories nav.sidebar-left a,
body.page-categories nav.sidebar-right a,
body.page-home nav.sidebar-left a,
body.page-home nav.sidebar-right a,
body.page-topic nav.sidebar-left a,
body.page-topic nav.sidebar-right a,
body.page-category nav.sidebar-left a,
body.page-category nav.sidebar-right a,
nav.sidebar.sidebar-left a,
nav.sidebar.sidebar-right a {
  color: #ffffff !important;
}
body.page-categories nav.sidebar-left .active,
body.page-categories nav.sidebar-right .active,
body.page-home nav.sidebar-left .active,
body.page-home nav.sidebar-right .active,
body.page-topic nav.sidebar-left .active,
body.page-topic nav.sidebar-right .active,
body.page-category nav.sidebar-left .active,
body.page-category nav.sidebar-right .active,
nav.sidebar.sidebar-left .active,
nav.sidebar.sidebar-right .active {
  background-color: #7f1d1d !important;
  color: #ffffff !important;
}

/* Revert forum sidebars to black/dark */
body.page-categories nav.sidebar-left,
body.page-categories nav.sidebar-right,
body.page-home nav.sidebar-left,
body.page-home nav.sidebar-right,
body.page-topic nav.sidebar-left,
body.page-topic nav.sidebar-right,
body.page-category nav.sidebar-left,
body.page-category nav.sidebar-right,
nav.sidebar.sidebar-left,
nav.sidebar.sidebar-right {
  background: #050505 !important;
  background-color: #050505 !important;
  background-image: none !important;
  color: #f5f5f5 !important;
  border-color: #333333 !important;
}
body.page-categories nav.sidebar-left *,
body.page-categories nav.sidebar-right *,
body.page-home nav.sidebar-left *,
body.page-home nav.sidebar-right *,
body.page-topic nav.sidebar-left *,
body.page-topic nav.sidebar-right *,
body.page-category nav.sidebar-left *,
body.page-category nav.sidebar-right *,
nav.sidebar.sidebar-left *,
nav.sidebar.sidebar-right * {
  color: #f5f5f5 !important;
}
body.page-categories nav.sidebar-left .active,
body.page-categories nav.sidebar-right .active,
body.page-home nav.sidebar-left .active,
body.page-home nav.sidebar-right .active,
body.page-topic nav.sidebar-left .active,
body.page-topic nav.sidebar-right .active,
body.page-category nav.sidebar-left .active,
body.page-category nav.sidebar-right .active,
nav.sidebar.sidebar-left .active,
nav.sidebar.sidebar-right .active {
  background-color: #111827 !important;
  color: #ffffff !important;
}

/* User profile About section contrast fix */
.page-user .about,
.page-account .about,
.page-user [component="about"],
.page-account [component="about"],
.page-user [component="user/about"],
.page-account [component="user/about"],
.page-user .card,
.page-account .card,
.page-user .profile-card,
.page-account .profile-card,
.page-user .text-bg-light,
.page-account .text-bg-light,
.page-user .bg-light,
.page-account .bg-light,
.page-user .list-group-item,
.page-account .list-group-item,
.template-account .card,
.template-account .text-bg-light,
.template-account .bg-light {
  background-color: #111827 !important;
  background: #111827 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
.page-user .about *,
.page-account .about *,
.page-user [component="about"] *,
.page-account [component="about"] *,
.page-user [component="user/about"] *,
.page-account [component="user/about"] *,
.page-user .card *,
.page-account .card *,
.template-account .card *,
.page-user .text-bg-light *,
.page-account .text-bg-light *,
.page-user .bg-light *,
.page-account .bg-light * {
  color: #f9fafb !important;
}
.page-user .text-muted,
.page-account .text-muted,
.template-account .text-muted,
.page-user small,
.page-account small,
.template-account small {
  color: #d1d5db !important;
}
.page-user a,
.page-account a,
.template-account a {
  color: #93c5fd !important;
}

/* Profile About tab active button fix */
.page-user .btn-ghost.active,
.page-account .btn-ghost.active,
.template-account .btn-ghost.active,
.page-user a.btn-ghost.active,
.page-account a.btn-ghost.active,
.account a.btn-ghost.active,
.account .btn-ghost.active,
.account .nav-link.active,
.account [href$="/user/admin"].active {
  background-color: #111827 !important;
  background: #111827 !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: #374151 !important;
}
.page-user .btn-ghost.active *,
.page-account .btn-ghost.active *,
.template-account .btn-ghost.active *,
.account .btn-ghost.active *,
.account .nav-link.active * {
  color: #ffffff !important;
}
.page-user .btn-ghost:hover,
.page-account .btn-ghost:hover,
.account .btn-ghost:hover,
.account .nav-link:hover {
  background-color: #1f2937 !important;
  color: #ffffff !important;
}

/* Login/Register page button contrast fix */
.page-login .btn-outline-light.text-body,
.page-register .btn-outline-light.text-body,
.template-login .btn-outline-light.text-body,
.template-register .btn-outline-light.text-body,
body.page-login a.btn-outline-light,
body.page-login button.btn-outline-light,
body.page-register a.btn-outline-light,
body.page-register button.btn-outline-light {
  color: #ffffff !important;
  background-color: #111827 !important;
  border-color: #6b7280 !important;
}
.page-login .btn-outline-light.text-body:hover,
.page-register .btn-outline-light.text-body:hover,
.template-login .btn-outline-light.text-body:hover,
.template-register .btn-outline-light.text-body:hover,
body.page-login a.btn-outline-light:hover,
body.page-login button.btn-outline-light:hover,
body.page-register a.btn-outline-light:hover,
body.page-register button.btn-outline-light:hover {
  color: #ffffff !important;
  background-color: #1f2937 !important;
  border-color: #93c5fd !important;
}
.page-login .btn-outline-light.text-body *,
.page-register .btn-outline-light.text-body *,
.template-login .btn-outline-light.text-body *,
.template-register .btn-outline-light.text-body * {
  color: #ffffff !important;
}

/* Global dropdown/select contrast fix */
.dropdown-menu,
.navigation-dropdown.dropdown-menu,
ul.dropdown-menu,
.dropdown-menu.show,
[role="menu"].dropdown-menu,
[role="listbox"],
.select-dropdown,
.form-select,
select,
select option,
select optgroup {
  background-color: #111827 !important;
  background: #111827 !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: #374151 !important;
}
.dropdown-menu *,
.navigation-dropdown.dropdown-menu *,
ul.dropdown-menu *,
.dropdown-menu.show *,
[role="menu"].dropdown-menu *,
[role="listbox"] *,
.select-dropdown *,
select option,
select optgroup {
  color: #ffffff !important;
}
.dropdown-item,
.dropdown-menu .dropdown-item,
.navigation-dropdown .dropdown-item,
.dropdown-menu a,
.dropdown-menu button,
[role="menuitem"],
[role="option"] {
  background-color: transparent !important;
  color: #ffffff !important;
}
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-menu a:hover,
.dropdown-menu button:hover,
.navigation-dropdown .dropdown-item:hover,
[role="menuitem"]:hover,
[role="option"]:hover,
[role="option"][aria-selected="true"] {
  background-color: #1f2937 !important;
  color: #ffffff !important;
}
.dropdown-header,
.dropdown-menu .dropdown-header,
.dropdown-divider {
  color: #d1d5db !important;
  border-color: #374151 !important;
}
.bootstrap-select .dropdown-menu,
.bootstrap-select .dropdown-menu.inner,
.bootstrap-select .dropdown-toggle,
.choices,
.choices__inner,
.choices__list,
.choices__list--dropdown,
.choices__item,
.choices__item--choice {
  background-color: #111827 !important;
  color: #ffffff !important;
  border-color: #374151 !important;
}

/* Force NodeBB Harmony dropdowns dark - highest specificity */
html body.theme-harmony .navigation-dropdown.dropdown-menu,
html body.theme-harmony ul.navigation-dropdown.dropdown-menu,
html body.theme-harmony .sidebar .navigation-dropdown.dropdown-menu,
html body.theme-harmony nav.sidebar .navigation-dropdown.dropdown-menu,
html body.theme-harmony .dropdown .dropdown-menu,
html body.theme-harmony .dropdown-menu.p-0,
html body.theme-harmony .dropdown-menu.p-1,
html body.theme-harmony ul.dropdown-menu[role="menu"] {
  background: #111827 !important;
  background-color: #111827 !important;
  color: #ffffff !important;
  border: 1px solid #374151 !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.6) !important;
}
html body.theme-harmony .navigation-dropdown.dropdown-menu li,
html body.theme-harmony .navigation-dropdown.dropdown-menu a,
html body.theme-harmony .navigation-dropdown.dropdown-menu button,
html body.theme-harmony .navigation-dropdown.dropdown-menu span,
html body.theme-harmony .navigation-dropdown.dropdown-menu i,
html body.theme-harmony .dropdown-menu li,
html body.theme-harmony .dropdown-menu a,
html body.theme-harmony .dropdown-menu button,
html body.theme-harmony .dropdown-menu span,
html body.theme-harmony .dropdown-menu i {
  color: #ffffff !important;
}
html body.theme-harmony .navigation-dropdown.dropdown-menu .dropdown-item,
html body.theme-harmony .dropdown-menu .dropdown-item,
html body.theme-harmony .navigation-dropdown.dropdown-menu .nav-link,
html body.theme-harmony .dropdown-menu .nav-link {
  background: transparent !important;
  background-color: transparent !important;
  color: #ffffff !important;
}
html body.theme-harmony .navigation-dropdown.dropdown-menu .dropdown-item:hover,
html body.theme-harmony .dropdown-menu .dropdown-item:hover,
html body.theme-harmony .navigation-dropdown.dropdown-menu .nav-link:hover,
html body.theme-harmony .dropdown-menu .nav-link:hover,
html body.theme-harmony .navigation-dropdown.dropdown-menu .active,
html body.theme-harmony .dropdown-menu .active {
  background: #1f2937 !important;
  background-color: #1f2937 !important;
  color: #ffffff !important;
}

/* Admin Manage Admins/Mods contrast fix */
body.admin .text-bg-light,
body.admin .bg-light,
body.admin .card.bg-light,
body.admin .card.text-bg-light,
body.admin .card-header,
body.admin .card-body,
body.admin .list-group,
body.admin .list-group-item,
body.admin .accordion-item,
body.admin .accordion-button,
body.admin .modal-content,
body.admin .table,
body.admin table,
body.admin tbody,
body.admin tr,
body.admin td,
body.admin th,
body.admin [class*="category"].text-bg-light,
body.admin [class*="group"].text-bg-light,
body.admin [class*="moderator"].text-bg-light,
body.admin [class*="admin"].text-bg-light {
  background-color: #111827 !important;
  background: #111827 !important;
  background-image: none !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
body.admin .text-bg-light *,
body.admin .bg-light *,
body.admin .card-header *,
body.admin .card-body *,
body.admin .list-group-item *,
body.admin .accordion-item *,
body.admin .accordion-button *,
body.admin .table *,
body.admin table *,
body.admin [class*="category"] *,
body.admin [class*="group"] *,
body.admin [class*="moderator"] * {
  color: #f9fafb !important;
}
body.admin .badge,
body.admin .label,
body.admin .tag-item,
body.admin .category-item,
body.admin .group-label,
body.admin .users-container .user,
body.admin .members .member,
body.admin [component*="category"],
body.admin [component*="group"],
body.admin [component*="admin"],
body.admin [component*="moderator"] {
  background-color: #1f2937 !important;
  color: #ffffff !important;
  border-color: #4b5563 !important;
}
body.admin .badge *,
body.admin .label *,
body.admin .tag-item *,
body.admin .category-item *,
body.admin .group-label *,
body.admin [component*="category"] *,
body.admin [component*="group"] *,
body.admin [component*="admin"] *,
body.admin [component*="moderator"] * {
  color: #ffffff !important;
}
body.admin a,
body.admin .btn-link {
  color: #93c5fd !important;
}
body.admin .btn-outline-secondary,
body.admin .btn-outline-light,
body.admin .btn-ghost {
  background-color: #111827 !important;
  color: #ffffff !important;
  border-color: #4b5563 !important;
}
body.admin .btn-outline-secondary:hover,
body.admin .btn-outline-light:hover,
body.admin .btn-ghost:hover {
  background-color: #1f2937 !important;
  color: #ffffff !important;
}

/* Admins/Mods manage page specific fix */
.page-admin-manage-admins-mods,
.template-admin-manage-admins-mods,
.admins-mods,
.admins-mods * {
  color: #f9fafb !important;
}
.page-admin-manage-admins-mods .badge.text-bg-light,
.template-admin-manage-admins-mods .badge.text-bg-light,
.admins-mods .badge.text-bg-light,
.page-admin-manage-admins-mods .text-bg-light,
.template-admin-manage-admins-mods .text-bg-light,
.admins-mods .text-bg-light,
.page-admin-manage-admins-mods .bg-light,
.template-admin-manage-admins-mods .bg-light,
.admins-mods .bg-light {
  background-color: #111827 !important;
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #374151 !important;
}
.page-admin-manage-admins-mods .badge.text-bg-light *,
.template-admin-manage-admins-mods .badge.text-bg-light *,
.admins-mods .badge.text-bg-light * {
  color: #ffffff !important;
}
.page-admin-manage-admins-mods input.form-control,
.template-admin-manage-admins-mods input.form-control,
.admins-mods input.form-control,
.page-admin-manage-admins-mods .form-control-sm,
.template-admin-manage-admins-mods .form-control-sm,
.admins-mods .form-control-sm {
  background-color: #0b1220 !important;
  color: #ffffff !important;
  border-color: #4b5563 !important;
}
.page-admin-manage-admins-mods .alert-info,
.template-admin-manage-admins-mods .alert-info,
.admins-mods .alert-info {
  background-color: #111827 !important;
  color: #f9fafb !important;
  border-color: #374151 !important;
}
.page-admin-manage-admins-mods .btn-light,
.template-admin-manage-admins-mods .btn-light,
.admins-mods .btn-light,
.page-admin-manage-admins-mods .btn-outline-light,
.template-admin-manage-admins-mods .btn-outline-light,
.admins-mods .btn-outline-light {
  background-color: #111827 !important;
  color: #ffffff !important;
  border-color: #4b5563 !important;
}
