:root {
  --tfa-dark-bg: #20262b;
  --tfa-dark-surface: #293239;
  --tfa-dark-line: #46525b;
  --tfa-dark-ink: #e8edf0;
  --tfa-dark-muted: #b6c0c7;
  --tfa-dark-link: #8dcaee;
}

.tfa-theme-toggle {
  position: fixed;
  top: 88px;
  right: 24px;
  z-index: 1001;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 11px;
  border: 1px solid var(--color-tertiary, #e4edf5);
  border-radius: 6px;
  background: var(--color-background, #f2f6fa);
  color: var(--color-neutral, #0d1117);
  font: inherit;
  font-size: .78rem;
  line-height: 1.2;
  cursor: pointer;
}

.tfa-theme-toggle:hover,
.tfa-theme-toggle:focus-visible {
  border-color: var(--color-primary, #1e7fc0);
  color: var(--color-primary, #1e7fc0);
}

.tfa-theme-toggle-icon {
  font-size: 1rem;
  line-height: 1;
}

html.tfa-dark-mode-preload,
html.tfa-dark-mode-preload body,
html.tfa-dark-mode,
html.tfa-dark-mode body {
  background: var(--tfa-dark-bg) !important;
}

html.tfa-dark-mode body {
  color: var(--tfa-dark-ink);
}

html.tfa-dark-mode .site-navigation,
html.tfa-dark-mode .site-header,
html.tfa-dark-mode header,
html.tfa-dark-mode .site-footer,
html.tfa-dark-mode .page-content,
html.tfa-dark-mode .site-main,
html.tfa-dark-mode .single-post-content,
html.tfa-dark-mode .entry-content,
html.tfa-dark-mode .container,
html.tfa-dark-mode .container-narrow {
  background-color: var(--tfa-dark-bg) !important;
  color: var(--tfa-dark-ink);
  border-color: var(--tfa-dark-line);
}

/* The theme sets article paragraph colors with !important. Repeat the
   article scope here so dark mode remains readable on the live frontend. */
html.tfa-dark-mode .tfa-reading-post .entry-content,
html.tfa-dark-mode .tfa-reading-post .entry-content p,
html.tfa-dark-mode .tfa-reading-post .entry-content li,
html.tfa-dark-mode .tfa-reading-post .entry-content blockquote,
html.tfa-dark-mode .tfa-reading-post .entry-content figcaption,
html.tfa-dark-mode .tfa-reading-post .entry-content .wp-element-caption {
  color: var(--tfa-dark-ink) !important;
}

html.tfa-dark-mode .tfa-reading-post .entry-content .tfa-citation,
html.tfa-dark-mode .tfa-reading-post .entry-content a {
  color: var(--tfa-dark-link) !important;
}

html.tfa-dark-mode .tfa-reading-post .tfa-reading-tools,
html.tfa-dark-mode .tfa-reading-post .tfa-reading-button,
html.tfa-dark-mode .tfa-reading-post .tfa-reading-toc,
html.tfa-dark-mode .tfa-reading-post .tfa-article-overview {
  background-color: var(--tfa-dark-surface) !important;
  color: var(--tfa-dark-ink) !important;
  border-color: var(--tfa-dark-line) !important;
}

html.tfa-dark-mode a,
html.tfa-dark-mode .main-nav a,
html.tfa-dark-mode .site-title a,
html.tfa-dark-mode .footer-nav a,
html.tfa-dark-mode .footer-email a {
  color: var(--tfa-dark-link);
}

html.tfa-dark-mode h1,
html.tfa-dark-mode h2,
html.tfa-dark-mode h3,
html.tfa-dark-mode h4,
html.tfa-dark-mode h5,
html.tfa-dark-mode h6 {
  color: var(--tfa-dark-ink);
}

html.tfa-dark-mode .entry-content h1,
html.tfa-dark-mode .entry-content h2,
html.tfa-dark-mode .entry-content h3,
html.tfa-dark-mode .entry-content h4,
html.tfa-dark-mode .entry-content h5,
html.tfa-dark-mode .entry-content h6,
html.tfa-dark-mode .page-title-bar h1,
html.tfa-dark-mode .work-area-heading {
  color: #71b8e6 !important;
}

html.tfa-dark-mode .card,
html.tfa-dark-mode .paragraph-emphasis,
html.tfa-dark-mode .entry-content .wp-block-quote,
html.tfa-dark-mode .entry-content .wp-block-pullquote,
html.tfa-dark-mode .tfa-reading-toc,
html.tfa-dark-mode .tfa-article-overview {
  background-color: var(--tfa-dark-surface) !important;
  color: var(--tfa-dark-ink);
  border-color: var(--tfa-dark-line);
}

html.tfa-dark-mode input,
html.tfa-dark-mode textarea,
html.tfa-dark-mode select,
html.tfa-dark-mode button:not(.tfa-theme-toggle) {
  background-color: var(--tfa-dark-surface);
  color: var(--tfa-dark-ink);
  border-color: var(--tfa-dark-line);
}

html.tfa-dark-mode .tfa-theme-toggle {
  background: var(--tfa-dark-surface);
  color: var(--tfa-dark-ink);
  border-color: var(--tfa-dark-line);
}

@media (max-width: 900px) {
  .tfa-theme-toggle {
    top: auto;
    right: 16px;
    bottom: 16px;
    border-radius: 999px;
  }
}

@media print {
  .tfa-theme-toggle {
    display: none !important;
  }
}
