/* Peptide Critic Site Header Styles
   Same header as peptidecritic.com (2026-10 redesign); sizes, colours and
   breakpoints come from the main site's css/pc-header.css. Desktop (>=1024px):
   68px top row + 46px menu row + 1px border = 115px. Below that: one 64px row.
   --pc-header-height in the forum's Custom CSS must equal those heights.
   Dark mode swaps the palette below (html.pc-dark); NodeBB's own UI goes dark
   through the Superhero skin. */
.pc-site-header {
  --pc-h-bg: #fff;
  --pc-h-border: #e5e7eb;
  --pc-h-fg: #1d2637;
  --pc-h-muted: #5b6678;
  --pc-h-line: #e7ebf2;
  --pc-h-soft: #f5f7fc;
  --pc-h-blue: #262bc5;
  --pc-h-tint: #eef0ff;
  --pc-h-shop: #262bc5;
  --pc-h-shop-hover: #1d21a3;
  --pc-h-input-bg: #f8fafc;
  --pc-h-input-border: #dfe4ec;
  --pc-h-input-hover: #c7cfdc;
  --pc-h-input-focus: #4f5bd5;
  --pc-h-placeholder: #7a8598;
  --pc-h-shadow: 0 18px 40px rgba(16, 24, 40, 0.10);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1050;
  padding: 0 12px;
  border-bottom: 1px solid var(--pc-h-border);
  background: var(--pc-h-bg);
  color: var(--pc-h-fg);
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
}
.pc-site-header *,
.pc-site-header *::before,
.pc-site-header *::after { box-sizing: border-box; }
.pc-site-header ul { margin: 0; padding: 0; list-style: none; }
.pc-site-header a,
.pc-site-header a:hover,
.pc-site-header a:focus { text-decoration: none; }
.pc-site-header button { font: inherit; margin: 0; }
.pc-site-header .pc-hdr { position: relative; }
@media (min-width: 1024px) {
  .pc-site-header { padding: 0 24px; }
  .pc-site-header .pc-hdr { max-width: 1120px; margin: 0 auto; }
}

/* ---------- Top row ---------- */
.pc-site-header .pc-hdr-top {
  display: flex;
  flex-wrap: wrap; /* the mobile search row goes underneath */
  align-items: center;
  gap: 0 8px;
  min-height: 63px; /* + the 1px border = 64px */
}
.pc-site-header .pc-hdr-logo { display: flex; align-items: center; flex-shrink: 0; height: 63px; margin-right: auto; }
.pc-site-header .pc-hdr-logo img { display: block; width: auto; height: 40px; transition: transform 0.15s; }
.pc-site-header .pc-hdr-logo:hover img { transform: scale(1.02); }
.pc-site-header .pc-logo-dark { display: none !important; }

.pc-site-header .pc-hicon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--pc-h-muted);
  cursor: pointer;
}
.pc-site-header .pc-hicon:hover { background: var(--pc-h-soft); color: var(--pc-h-fg); }

.pc-site-header .pc-hshop-slot { display: contents; }
.pc-site-header .pc-hshop {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 16px;
  border-radius: 10px;
  background: var(--pc-h-shop);
  color: #fff !important;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
}
.pc-site-header .pc-hshop:hover { background: var(--pc-h-shop-hover); }

/* Sign in for guests, Sign out for members (the JS unhides the right one). */
.pc-site-header .pc-hsignin,
.pc-site-header .pc-hsignout {
  padding: 0 6px;
  border: 0;
  background: none;
  color: var(--pc-h-muted);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
  cursor: pointer;
}
.pc-site-header .pc-hsignin:hover,
.pc-site-header .pc-hsignout:hover { color: var(--pc-h-blue); }
.pc-site-header .pc-hsignin[hidden],
.pc-site-header .pc-hsignout[hidden] { display: none; }

/* Theme switch: show the icon for the mode you'd switch TO. */
.pc-site-header .pc-icon-sun { display: none; }
html.pc-dark .pc-site-header .pc-icon-sun { display: inline; }
html.pc-dark .pc-site-header .pc-icon-moon { display: none; }

/* ---------- Search (NodeBB quick search) ---------- */
.pc-site-header .pc-hsearch { position: relative; display: flex; align-items: center; margin: 0; }
.pc-site-header .pc-hsearch-icon { position: absolute; left: 14px; display: flex; color: var(--pc-h-placeholder); pointer-events: none; }
.pc-site-header .pc-hsearch-icon svg { width: 17px; height: 17px; }
.pc-site-header .pc-hsearch input.pc-hsearch-input {
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 14px 0 40px;
  border: 1px solid var(--pc-h-input-border);
  border-radius: 10px;
  background: var(--pc-h-input-bg);
  box-shadow: none;
  color: var(--pc-h-fg);
  font: inherit;
  font-size: 16px; /* under 16px, iOS zooms the page on focus */
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.pc-site-header .pc-hsearch input.pc-hsearch-input::placeholder { color: var(--pc-h-placeholder); opacity: 1; }
.pc-site-header .pc-hsearch input.pc-hsearch-input:hover { border-color: var(--pc-h-input-hover); }
.pc-site-header .pc-hsearch input.pc-hsearch-input:focus { border-color: var(--pc-h-input-focus); background: var(--pc-h-bg); box-shadow: 0 0 0 3px rgba(38, 43, 197, 0.12); }
.pc-site-header .pc-hsearch input.pc-hsearch-input::-webkit-search-cancel-button { cursor: pointer; }
.pc-site-header .pc-hsearch-kbd { display: none; }
/* NodeBB fills .quick-search-results-container; the skin's colours apply. */
.pc-site-header .pc-hsearch-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 70;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid var(--bs-border-color, #e2e8f0);
  border-radius: 12px;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 12px 40px rgba(16, 24, 40, 0.14);
  color: var(--bs-body-color, #1d2637);
  font-family: var(--bs-body-font-family, inherit);
  font-size: 1rem;
}
.pc-site-header .pc-hsearch-results .quick-search-results { width: 100%; }
.pc-site-header.pc-hdr--nosearch .pc-hsearch { display: none !important; }

/* Mobile order: logo, Shop, search icon, menu; then the search row. The theme
   switch and Sign in live in the menu. */
@media (max-width: 1023.98px) {
  .pc-site-header .pc-hdr-actions { display: contents; }
  .pc-site-header .pc-hsignin,
  .pc-site-header .pc-hsignout,
  .pc-site-header .pc-htheme { display: none !important; }
  .pc-site-header .pc-hshop { order: 2; height: 36px; padding: 0 14px; font-size: 14px; }
  .pc-site-header .pc-hsearch-btn { order: 3; }
  .pc-site-header .pc-mnav-toggle { order: 4; }
  .pc-site-header .pc-hsearch { display: none; order: 10; flex: 0 0 100%; margin-bottom: 12px; }
  .pc-site-header.pc-hsearch-open .pc-hsearch { display: flex; }
}

@media (min-width: 1024px) {
  /* Logo | search | buttons: equal side columns keep the search centred. */
  .pc-site-header .pc-hdr-top {
    display: grid;
    grid-template-columns: 1fr minmax(0, 480px) 1fr;
    gap: 24px;
    height: 68px;
    min-height: 68px;
  }
  .pc-site-header .pc-hdr-logo { height: auto; margin-right: 0; justify-self: start; }
  .pc-site-header .pc-hsearch { grid-column: 2; }
  .pc-site-header .pc-hsearch input.pc-hsearch-input { height: 42px; padding-right: 64px; font-size: 15px; }
  .pc-site-header .pc-hsearch-kbd {
    position: absolute;
    right: 10px;
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid var(--pc-h-line);
    border-radius: 6px;
    background: var(--pc-h-bg);
    box-shadow: none;
    color: var(--pc-h-placeholder);
    font: 500 11px/1.4 system-ui, sans-serif;
    pointer-events: none;
  }
  .pc-site-header .pc-hsearch:focus-within .pc-hsearch-kbd { display: none; }
  /* Results are wider than the box: centred under it. */
  .pc-site-header .pc-hsearch-results { left: 50%; right: auto; width: min(640px, calc(100vw - 48px)); transform: translateX(-50%); }
  .pc-site-header .pc-hsearch-btn { display: none; }
  .pc-site-header.pc-hdr--nosearch .pc-hsearch-btn { display: inline-flex; }
  .pc-site-header .pc-hdr-actions { display: flex; align-items: center; justify-self: end; gap: 8px; grid-column: 3; }
  .pc-site-header .pc-mnav-toggle { display: none; }
}

/* ---------- Desktop menu row ---------- */
.pc-site-header .pc-hnav { display: none; }
@media (min-width: 1024px) {
  .pc-site-header .pc-hnav { display: flex; align-items: stretch; height: 46px; }
}
.pc-site-header .pc-hnav-list { display: flex; align-items: stretch; gap: 26px; }
.pc-site-header .pc-hnav-list > li { display: flex; }
.pc-site-header .pc-hnav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--pc-h-muted);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  white-space: nowrap;
}
.pc-site-header .pc-hnav-link:hover,
.pc-site-header .pc-hnav-link[aria-expanded="true"],
.pc-site-header .pc-hnav-link.is-active { color: var(--pc-h-blue); }
.pc-site-header .pc-hnav-link.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  border-radius: 2px;
  background: var(--pc-h-blue);
}
.pc-site-header .pc-hnav-trigger .pc-hicon-svg { transition: transform 0.15s ease; }
.pc-site-header .pc-hnav-trigger[aria-expanded="true"] .pc-hicon-svg { transform: rotate(180deg); }

.pc-site-header .pc-hnav-utility {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  color: var(--pc-h-muted);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}
.pc-site-header .pc-hnav-utility:hover,
.pc-site-header .pc-hnav-utility.is-active { color: var(--pc-h-blue); }

/* ---------- Dropdown panels ---------- */
.pc-site-header .pc-hpanel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 60;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px;
  padding: 24px 24px 26px;
  border: 1px solid var(--pc-h-line);
  border-top: 0;
  border-radius: 0 0 14px 14px;
  background: var(--pc-h-bg);
  box-shadow: var(--pc-h-shadow);
  animation: pc-hpanel-in 0.14s ease-out;
}
.pc-site-header .pc-hpanel--solo { grid-template-columns: minmax(0, 1fr); }
.pc-site-header .pc-hpanel[hidden] { display: none; }
@keyframes pc-hpanel-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pc-site-header .pc-hpanel { animation: none; } }
@media (max-width: 1023.98px) { .pc-site-header .pc-hpanel { display: none !important; } }

.pc-site-header .pc-eyebrow {
  margin: 0 0 12px;
  color: var(--pc-h-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.5;
  text-transform: uppercase;
}
.pc-site-header .pc-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.pc-site-header .pc-tile {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px;
  border-radius: 10px;
  color: var(--pc-h-fg);
}
.pc-site-header .pc-tile:hover { background: var(--pc-h-soft); }
.pc-site-header .pc-tile-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: var(--pc-h-tint);
  color: var(--pc-h-blue);
}
.pc-site-header .pc-tile-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pc-site-header .pc-tile-title { color: var(--pc-h-fg); font-size: 15px; font-weight: 500; line-height: 1.3; }
.pc-site-header .pc-tile-desc { color: var(--pc-h-muted); font-size: 13px; line-height: 1.4; }
.pc-site-header .pc-hpanel-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 12px 0 0 10px;
  color: var(--pc-h-blue);
  font-size: 14px;
  font-weight: 500;
}
.pc-site-header .pc-hpanel-all:hover { text-decoration: underline; }

/* Featured Lab Report (dropdowns and mobile menu). */
.pc-site-header .pc-feature {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px;
  border-radius: 12px;
  background: var(--pc-h-soft);
}
.pc-site-header .pc-feature .pc-eyebrow { margin: 0; color: var(--pc-h-blue); }
.pc-site-header .pc-feature-title { color: var(--pc-h-fg); font-size: 19px; line-height: 1.35; }
.pc-site-header .pc-feature-cta { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--pc-h-blue); font-size: 14px; font-weight: 500; }
.pc-site-header .pc-feature:hover .pc-feature-cta { text-decoration: underline; }

/* ---------- Mobile menu ---------- */
.pc-site-header .pc-mnav-toggle .pc-mnav-close-icon { display: none; }
.pc-site-header .pc-mnav-toggle[aria-expanded="true"] .pc-mnav-open-icon { display: none; }
.pc-site-header .pc-mnav-toggle[aria-expanded="true"] .pc-mnav-close-icon { display: inline; }
.pc-site-header .pc-mnav-toggle[aria-expanded="true"] { background: var(--pc-h-soft); color: var(--pc-h-fg); }

/* Fills the screen below the header and covers harmony's bottom bar (1040);
   the header (1050) stays under Bootstrap modals (1055) and the composer. */
.pc-site-header .pc-mnav {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--pc-header-height, 64px);
  bottom: 0;
  z-index: 5;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 14px 16px calc(32px + env(safe-area-inset-bottom, 0px));
  background: var(--pc-h-bg);
}
.pc-site-header .pc-mnav[hidden] { display: none; }
@media (min-width: 1024px) { .pc-site-header .pc-mnav { display: none !important; } }
html.pc-mnav-open, html.pc-mnav-open body { overflow: hidden !important; }

.pc-site-header .pc-mnav-search {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  height: 46px;
  margin-bottom: 18px;
  padding: 0 14px;
  border: 1px solid var(--pc-h-input-border);
  border-radius: 12px;
  background: var(--pc-h-soft);
  color: var(--pc-h-placeholder);
  font-size: 15px;
  text-align: left;
  cursor: pointer;
}
.pc-site-header .pc-mnav-search svg { width: 17px; height: 17px; }
.pc-site-header .pc-mnav-list { margin: 0 0 18px; }
.pc-site-header .pc-mnav-item { border-bottom: 1px solid var(--pc-h-line); }
.pc-site-header .pc-mnav-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  padding: 12px 2px;
  border: 0;
  border-radius: 0;
  background: none;
  text-align: left;
  cursor: pointer;
}
.pc-site-header .pc-mnav-row.is-active .pc-tile-title { color: var(--pc-h-blue); }
.pc-site-header .pc-mnav-chevron { display: flex; margin-left: auto; color: var(--pc-h-muted); transition: transform 0.15s ease; }
.pc-site-header .pc-mnav-expand[aria-expanded="true"] .pc-mnav-chevron { transform: rotate(180deg); }
.pc-site-header .pc-msub { margin: 0 0 10px 46px; }
.pc-site-header .pc-msub[hidden] { display: none; }
.pc-site-header .pc-msub a { display: block; padding: 9px 0; color: var(--pc-h-fg); font-size: 15px; }
.pc-site-header .pc-msub a:hover { color: var(--pc-h-blue); }

.pc-site-header .pc-mnav-theme {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: auto;
  height: auto;
  margin-top: 18px;
  padding: 8px 2px;
  border: 0;
  background: none;
  color: var(--pc-h-muted);
  font-size: 14px;
  cursor: pointer;
}
.pc-site-header .pc-mnav-signin,
.pc-site-header .pc-mnav-signout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  margin-top: 14px;
  padding: 0;
  border: 1px solid var(--pc-h-input-border);
  border-radius: 10px;
  background: none;
  color: var(--pc-h-blue);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.pc-site-header .pc-mnav-signout { color: var(--pc-h-muted); }
.pc-site-header .pc-mnav-signin[hidden],
.pc-site-header .pc-mnav-signout[hidden] { display: none; }

/* Keyboard focus. */
.pc-site-header :is(a, button):focus-visible {
  outline: 2px solid var(--pc-h-blue);
  outline-offset: 2px;
  border-radius: 8px;
}

/* Dark palette (Superhero skin). */
html.pc-dark .pc-site-header {
  --pc-h-bg: #132b40;
  --pc-h-border: #22405c;
  --pc-h-fg: #e6edf5;
  --pc-h-muted: #a9b6c8;
  --pc-h-line: #22405c;
  --pc-h-soft: #1a3a56;
  --pc-h-blue: #7fb2ff;
  --pc-h-tint: #1d3d5a;
  --pc-h-shop: #3a40d6;
  --pc-h-shop-hover: #4b52ea;
  --pc-h-input-bg: #0f2537;
  --pc-h-input-border: #2a4b69;
  --pc-h-input-hover: #3b6186;
  --pc-h-input-focus: #7fb2ff;
  --pc-h-placeholder: #8796ab;
  --pc-h-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}
html.pc-dark .pc-site-header .pc-logo-light { display: none !important; }
html.pc-dark .pc-site-header .pc-logo-dark { display: block !important; }
html.pc-dark .pc-site-header .pc-htheme { color: #fcd34d; }
html.pc-dark .pc-site-header .pc-hsearch-results { box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); }

/* Site Footer Styles */
.pc-site-footer {
  background: #f9fafb;
  border-top: 1px solid #e5e7eb;
  padding: 3rem 1rem;
  margin-top: 2rem;
}
.pc-site-footer .pc-container {
  max-width: 1280px;
  margin: 0 auto;
}
.pc-site-footer .pc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .pc-site-footer .pc-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.pc-site-footer h3 {
  font-weight: 600;
  margin-bottom: 0.75rem;
  font-size: 1rem;
}
.pc-site-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pc-site-footer ul li {
  margin-bottom: 0.5rem;
}
.pc-site-footer ul li a {
  color: #64748b;
  font-size: 0.875rem;
  text-decoration: none;
}
.pc-site-footer ul li a:hover {
  color: #1e293b;
}
.pc-site-footer .pc-brand-desc {
  font-size: 0.875rem;
  color: #64748b;
}
.pc-site-footer .pc-copyright {
  border-top: 1px solid #e5e7eb;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  text-align: center;
  font-size: 0.875rem;
  color: #64748b;
}

/* Adjust main content to account for fixed header (64px, 115px from 1024px;
   --pc-header-height is set in the forum's Custom CSS). */
body {
  padding-top: var(--pc-header-height, 64px) !important;
}

/* Set max width for the community site */
.layout-container,
#content,
.container-lg {
  max-width: 1315px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Hero banner - let the Custom CSS in admin handle styling */
/* Only hide on non-homepage pages */
body:not(.template-categories):not(.page-categories) [component="brand/wrapper"] {
  display: none !important;
}

/* Fix iPad/tablet: offset NodeBB sticky elements below the fixed site header */
.sidebar.sticky-top {
  top: var(--pc-header-height, 64px) !important;
  height: calc(100vh - var(--pc-header-height, 64px)) !important;
}

/* Fix NodeBB topbar sticking under the site header */
[component="header"] {
  top: var(--pc-header-height, 64px) !important;
  z-index: 1040 !important;
}

/* Prevent scroll trapping on iPad - allow touch scrolling through fixed header */
.pc-site-header {
  -webkit-overflow-scrolling: touch;
  pointer-events: auto;
}

/* Ensure content area scrolls freely on touch devices */
[component="content"] {
  -webkit-overflow-scrolling: touch;
}

/* Fix mobile bottom bar not overlapping footer */
@media (max-width: 991px) {
  .bottombar.fixed-bottom {
    z-index: 1040;
  }
}

/* ================================================================ dark mode ==
   Dark palette for the chrome we inject (the header's is with its styles
   above). NodeBB's own UI goes dark via the Superhero skin (swapped in by
   site-header-footer.js); html.pc-dark is set by that script before first paint. */

/* Footer */
html.pc-dark .pc-site-footer {
  background: #0b1d2c;
  border-top-color: #1d3a55;
  color: #cbd5e1;
}
html.pc-dark .pc-site-footer h3 { color: #e2e8f0; }
html.pc-dark .pc-site-footer ul li a,
html.pc-dark .pc-site-footer .pc-brand-desc,
html.pc-dark .pc-site-footer .pc-copyright { color: #94a3b8; }
html.pc-dark .pc-site-footer ul li a:hover { color: #e2e8f0; }
html.pc-dark .pc-site-footer .pc-copyright { border-top-color: #1d3a55; }

/* Harmony renders both sidebars as `bg-light text-dark`; under Superhero that is
   a pale grey-blue (#abb6c2) slab next to a navy page. Darken them in dark mode. */
html.pc-dark .sidebar.bg-light {
  background-color: #132b40 !important;
  border-color: #22405c !important;
}
html.pc-dark .sidebar.text-dark,
html.pc-dark .sidebar .text-dark,
html.pc-dark .sidebar .nav-link,
html.pc-dark .sidebar [component="sidebar/toggle"] { color: #cbd5e1 !important; }
html.pc-dark .sidebar .nav-link:hover { background-color: #1d3d5a !important; color: #fff !important; }

/* Contest widget (nodebb-plugin-contest-entries) hardcodes a white card. */
html.pc-dark .contest-widget {
  background: #132b40 !important;
  border-color: #22405c !important;
  color: #e2e8f0;
}
html.pc-dark .contest-widget a:not(.btn):not([class*="__enter"]) { color: #7fb2ff; }
html.pc-dark .contest-widget [class*="entries"],
html.pc-dark .contest-widget [class*="stats"],
html.pc-dark .contest-widget [class*="meta"] { color: #94a3b8; }
html.pc-dark .contest-widget .contest-widget__prize { color: #f1f5f9 !important; }
html.pc-dark .contest-widget .contest-widget__body .countdown-value { color: #fca5a5 !important; }
html.pc-dark .contest-widget .btn-link { color: #7fb2ff !important; }

/* Superhero's link blue (#0951be) is ~2.6:1 on its own #0f2537 page, so
   category/topic titles read poorly. Lift links to a lighter blue (>= 6:1).
   Loaded after client-<skin>.css, so this beats the skin's :root value. */
html.pc-dark {
  --bs-link-color: #7fb2ff;
  --bs-link-color-rgb: 127, 178, 255;
  --bs-link-hover-color: #a9ccff;
  --bs-link-hover-color-rgb: 169, 204, 255;
}
/* Harmony bakes a fixed #0951be into the skin for UNREAD category/topic titles,
   so the variable lift above doesn't reach them. */
html.pc-dark ul.categories-list li.unread .title,
html.pc-dark ul.topics-list li.unread .title { color: #7fb2ff !important; }  /* skin's rule is !important */
