/* ============================================================
   THEME — site-wide light/dark mode
   Light mode is the default and is untouched: every rule below
   is scoped under [data-theme="dark"], which is set on <html>
   by an inline head snippet (localStorage "sk-theme", falling
   back to prefers-color-scheme).

   The three CSS families on this site are all variable-driven,
   so dark mode is mostly a variable remap. The targeted rules
   after each remap cover the handful of hardcoded colors that
   would otherwise go unreadable.
   ============================================================ */

:root { color-scheme: light; }
[data-theme="dark"] { color-scheme: dark; }

/* ------------------------------------------------------------
   FAMILY 1 — css/style.css (portfolio: homepage, blog, articles)
   ------------------------------------------------------------ */
[data-theme="dark"] {
  --text: #f5f5f7;
  --secondary: #a1a1a6;
  --alt: #17171a;
  --white: #1c1c1f;          /* cards / raised surfaces */
  --black: #000000;
  --accent: #4bb886;         /* brightened for dark bg */
  --accent-bright: #7bd3a6;
  --accent-soft: #123626;
  --line: #2e2e33;
  --dark-line: #2d2d2f;
  --dark-secondary: #a1a1a6;
  --shadow: 0 10px 34px rgba(0, 0, 0, .45);
  --shadow-hover: 0 18px 48px rgba(0, 0, 0, .6);
}
/* Page canvas darker than cards */
[data-theme="dark"] body { background: #101013; }
[data-theme="dark"] body.nd { background: #12110e; }

/* Hardcoded spots in style.css */
[data-theme="dark"] .nav { background: rgba(16, 16, 19, .72); }
[data-theme="dark"] .btn-dark { background: #f5f5f7; color: #141416; }
[data-theme="dark"] .btn-dark:hover { background: #ffffff; }
[data-theme="dark"] .skip-link { background: #f5f5f7; color: #141416; }
[data-theme="dark"] .article-body { color: #d9d9de; }
[data-theme="dark"] .nepali-summary { background: #1a1a1e; border-color: #2e2e33; }
[data-theme="dark"] .nepali-summary p:last-child { color: #d9d9de; }
[data-theme="dark"] .faq details:hover,
[data-theme="dark"] .faq details[open] { border-color: #3a3a40; }
[data-theme="dark"] .faq details p,
[data-theme="dark"] .key-facts li { color: #c9c9cf; }
[data-theme="dark"] .sc-table tbody tr:nth-child(even) { background: #17171a; }
/* Intentionally-dark sections (.section-dark, .finding, footer text)
   stay dark — no overrides needed. */

/* ------------------------------------------------------------
   FAMILY 2 — css/nepse-luxury.css (suite + all stock pages)
   Deep charcoal-ink greens, warm gold kept.
   ------------------------------------------------------------ */
[data-theme="dark"] {
  --ink: #edeae0;            /* text */
  --pine: #0d1f16;           /* stays deep (final CTA band) */
  --emerald: #43b581;        /* brightened for dark bg */
  --emerald-deep: #2f9c6c;
  --gold: #c6a86b;           /* brand gold preserved */
  --gold-soft: #38301f;
  --gold-faint: #241f13;
  --ivory: #0e130f;          /* page canvas */
  --paper: #151c17;          /* cards */
  --hairline: rgba(237, 234, 224, .14);
  --hairline-soft: rgba(237, 234, 224, .07);
  --muted: #9aa096;
  --faint: #6e746c;
  --up: #4cc38a;
  --down: #e07a6a;
  --shadow: 0 12px 40px rgba(0, 0, 0, .35);
  --shadow-hover: 0 22px 60px rgba(0, 0, 0, .5);
  /* Consumed by nepse-wave8.css via var() fallbacks */
  --ink-soft: #a9aca2;
  --line: rgba(237, 234, 224, .16);
}

/* Hardcoded spots in nepse-luxury.css.
   .band / .honest are brand-dark moments: keep them near-black
   so their light text stays readable (they used var(--ink),
   which now means light text). */
[data-theme="dark"] .topbar { background: rgba(14, 19, 15, .88); }
[data-theme="dark"] .band,
[data-theme="dark"] .honest { background: #0a0f0b; }
[data-theme="dark"] .info-tip::after { background: #0a0f0b; color: #edeae0; }
[data-theme="dark"] .btn.gold { color: #141311; }
[data-theme="dark"] .w1-tab[aria-selected="true"] {
  background: var(--gold); border-color: var(--gold); color: #141311;
}
[data-theme="dark"] .skl {
  background: linear-gradient(100deg, var(--ivory) 42%, #232a24 50%, var(--ivory) 58%);
  background-size: 200% 100%;
}
[data-theme="dark"] .sc-range-in { background: #151c17; color: var(--ink); }
/* Verdict pills (.v-*) are self-contained solid/pastel chips —
   readable on dark, left untouched. */

/* nepse-wave8.css card surfaces */
[data-theme="dark"] .sp-price-card,
[data-theme="dark"] .vpill,
[data-theme="dark"] .sp-fund,
[data-theme="dark"] .ca-item,
[data-theme="dark"] .sp-table-wrap,
[data-theme="dark"] .inv-cal { background: #151c17; }
[data-theme="dark"] .ca-filters select,
[data-theme="dark"] .ca-filters input,
[data-theme="dark"] .sp-dir-search input[type="search"],
[data-theme="dark"] .inv-cal-pages button {
  background: #151c17; color: var(--ink);
  border-color: rgba(237, 234, 224, .16);
}
[data-theme="dark"] .inv-cal-tab { background: #151c17; color: var(--ink-soft); }
[data-theme="dark"] .inv-cal-nav { border-color: rgba(237, 234, 224, .16); }
[data-theme="dark"] .sp-chg.pos { color: #4cc38a; }
[data-theme="dark"] .sp-chg.neg { color: #e07a6a; }
/* .vg-* verdict pills are pastel chips with dark text — readable, untouched. */

/* nepse-wave7.css snapshot cards */
[data-theme="dark"] .nlsnap { background: #151c17; border-color: rgba(237, 234, 224, .14); }
[data-theme="dark"] .nlsnap-v { color: var(--ink); }
[data-theme="dark"] .nlsnap-v .up { color: #4cc38a; }
[data-theme="dark"] .nlsnap-v .down { color: #e07a6a; }
[data-theme="dark"] .nlsnap-s { color: var(--muted); }
[data-theme="dark"] .nlsnap-s.up { color: #4cc38a; }
[data-theme="dark"] .nlsnap-s.down { color: #e07a6a; }
[data-theme="dark"] .nlsnap-k,
[data-theme="dark"] .nlsnap-cap { color: var(--faint); }
[data-theme="dark"] .nlsnap-sep { color: var(--faint); }
[data-theme="dark"] .nlv-sub { color: var(--muted); }
[data-theme="dark"] .nl-note {
  background: #151c17; border-color: rgba(237, 234, 224, .14); color: var(--ink-soft);
}
[data-theme="dark"] .fd-list li { border-color: rgba(237, 234, 224, .1); }
/* .nlv-badge / .nl-badge status chips are self-contained — untouched. */

/* ------------------------------------------------------------
   FAMILY 3 — css/nepse-design-system.css
   (nepse-decode, nepse-value, nepse-trending + suite tools)
   Scoped to body.nd so these variables never leak onto luxury pages
   (the two families share names like --paper/--ink/--gold).
   ------------------------------------------------------------ */
[data-theme="dark"] body.nd {
  --paper: #12110e;
  --paper-deep: #1a1815;
  --card: #1d1b17;
  --ink: #f5f1e6;
  --ink-soft: #cdc5b2;
  --muted: #99917c;
  --hairline: rgba(245, 241, 230, .14);
  --hairline-soft: rgba(245, 241, 230, .07);
  --green-950: #0a2e22;
  --green-900: #0d4a37;
  --green-700: #55b183;      /* brightened for dark bg */
  --green-100: #1c332a;
  --gold: #c9a86f;
  --gold-soft: #38301f;
  --up: #4cc38a;
  --up-bg: #123626;
  --down: #e07a6a;
  --down-bg: #3a1f19;
}
/* Signal tags: dark-mode needs light text on the dark green pill
   (was --green-900 on --green-100 = 1.31:1, axe violation) */
[data-theme="dark"] body.nd .tag.entry{color:var(--green-700);}

/* Hardcoded spots in nepse-design-system.css */
[data-theme="dark"] .w1-tab[aria-selected="true"] {
  background: var(--gold); border-color: var(--gold); color: #141311;
}
[data-theme="dark"] .qcomp-scroll { background: var(--card); }
[data-theme="dark"] .qcomp th.q-part,
[data-theme="dark"] .qcomp td.q-part { background: var(--card); }
[data-theme="dark"] .qcomp thead th.q-part { background: var(--paper-deep); }
/* .foot .disclaimer uses var(--ivory, fallback #faf7ef) which the
   design system never defines — pin a dark surface explicitly. */
[data-theme="dark"] .foot .disclaimer { background: #1d1b17; }
[data-theme="dark"] .nd-chip.c-up { color: #4cc38a; }
[data-theme="dark"] .nd-chip.c-down { color: #e07a6a; }
/* .nd-hero-card, .nd-btn.primary, .nd-mobilenav a.active are
   intentionally dark-green moments — untouched. */

/* ============================================================
   THEME TOGGLE BUTTON
   Framework-independent: own border/color tokens so it renders
   in any of the three families, light or dark.
   ============================================================ */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: none;
  border-radius: 50%;
  border: 1px solid var(--hairline, var(--line, #d2d2d7));
  background: transparent;
  color: inherit;
  cursor: pointer;
  padding: 0;
  transition: border-color .2s ease, background .2s ease, transform .15s ease;
}
.theme-toggle:hover {
  border-color: var(--gold, #b98f3e);
  background: var(--gold-faint, rgba(185, 143, 62, .08));
}
.theme-toggle:active { transform: scale(.94); }
.theme-toggle:focus-visible {
  outline: 2px solid var(--gold, #b98f3e);
  outline-offset: 3px;
}
.theme-toggle svg { width: 18px; height: 18px; display: block; }
.theme-toggle .tt-sun { display: none; }
[data-theme="dark"] .theme-toggle .tt-sun { display: block; }
[data-theme="dark"] .theme-toggle .tt-moon { display: none; }

/* The toggle lives in exactly one place on every page and every
   viewport: fixed at the top-left corner, just below the nav bar so it
   never covers header buttons and never shifts page layout (fixed =
   out of flow). (2026-10-01: header injection removed — per-breakpoint
   header DOM put it in a different spot on laptop / tablet / mobile.
   2026-10-02: moved top-right → top-left per owner request.) */
.theme-toggle.fixed {
  position: fixed;
  top: 76px;
  left: calc(16px + env(safe-area-inset-left, 0px));
  z-index: 80;
  width: 42px;
  height: 42px;
  background: var(--card, var(--paper, var(--white, #fff)));
  border: 1px solid var(--hairline, var(--line, #d2d2d7));
  box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
}

/* Rail pages (corp actions): the fixed 236px suite rail owns the left edge
   on desktop, so the top-left toggle lands on the rail navigation. Dock it
   bottom-right there instead — clear of the rail and the content top. */
@media(min-width:1100px){
  body:has(.suite-rail) .theme-toggle.fixed,
  body:has(.d2-side) .theme-toggle.fixed{
    top:auto; left:auto;
    bottom:calc(24px + env(safe-area-inset-bottom,0px));
    right:calc(24px + env(safe-area-inset-right,0px));
  }
}

/* Suite sidebar pages (chart, news, portfolio, screener, reports, simulator):
   the 240px .nd-side column owns the left edge from 1024px up, so the
   top-left toggle lands on the Suite kicker / nav labels. Dock it
   bottom-right there instead — never overlapping nav. */
@media(min-width:1024px){
  body:has(.nd-side) .theme-toggle.fixed{
    top:auto; left:auto;
    bottom:calc(24px + env(safe-area-inset-bottom,0px));
    right:calc(24px + env(safe-area-inset-right,0px));
  }
}

/* Mobile (<1024px): the top-left position lands on the sticky mobile nav
   pills. Dock bottom-right instead — clear of nav and content. */
@media(max-width:1023px){
  .theme-toggle.fixed{
    top:auto; left:auto;
    bottom:calc(20px + env(safe-area-inset-bottom,0px));
    right:calc(16px + env(safe-area-inset-right,0px));
  }
}

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

/* Screener signal cards: pin labels and Total number to dark colors in dark mode */
[data-theme="dark"] .sc-card .sc-lab{ color:#4a5548; }
[data-theme="dark"] .sc-total .sc-num{ color:#0C1F16; }

/* Screener: fix dark-mode contrast for select dropdown and table zebra rows */
[data-theme="dark"] .sc-select{ background:#1a1a1e; color:#f5f5f7; border-color:#2e2e33; }
[data-theme="dark"] .sc-select option{ background:#1a1a1e; color:#f5f5f7; }
[data-theme="dark"] .sc-table tbody tr:nth-child(even){ background:#1a1a1e; }
[data-theme="dark"] .sc-table tbody tr:nth-child(odd){ background:transparent; }
[data-theme="dark"] .sc-table tbody td{ color:#e8e8ea; border-top-color:#2e2e33; }
[data-theme="dark"] .sc-table thead th{ background:#1a1a1e; color:#a1a1a6; border-bottom-color:#2e2e33; }

/* Force dark-mode table/dropdown contrast (override stale cached rules) */
[data-theme="dark"] .sc-table tbody tr:nth-child(odd) td{ background:#12110e !important; color:#e8e8ea !important; }
[data-theme="dark"] .sc-table tbody tr:nth-child(even) td{ background:#1a1a1e !important; color:#e8e8ea !important; }
[data-theme="dark"] .sc-select{ background:#1a1a1e !important; color:#f5f5f7 !important; }

/* Dark mode: table card container must be dark too */
[data-theme="dark"] .sc-tbl-card{ background:#12110e !important; border-color:#2e2e33 !important; }
[data-theme="dark"] .sc-table{ background:transparent !important; }

/* Dark mode: table-scroll container (Top 10 table wrapper) */
[data-theme="dark"] .table-scroll{ background:#12110e !important; border-color:#2e2e33 !important; }

/* Screener About + FAQ: proper card design */
.nd-seo-copy{ max-width:1200px; margin:48px auto 0; padding:32px 28px; background:var(--nd-panel,#fff); border:1px solid var(--hairline,#E7DFCE); border-radius:16px; }
.nd-seo-copy h2{ font-family:var(--serif); font-size:1.4rem; font-weight:700; margin:0 0 16px; color:var(--ink); letter-spacing:-.01em; }
.nd-seo-copy p{ font-size:.95rem; line-height:1.7; color:var(--ink-soft); margin:0 0 14px; }
.nd-seo-copy p:last-child{ margin-bottom:0; }
.nd-faq{ max-width:1200px; margin:24px auto 48px; padding:32px 28px; background:var(--nd-panel,#fff); border:1px solid var(--hairline,#E7DFCE); border-radius:16px; }
.nd-faq h2{ font-family:var(--serif); font-size:1.4rem; font-weight:700; margin:0 0 20px; color:var(--ink); letter-spacing:-.01em; }
.nd-faq details{ border:1px solid var(--hairline); border-radius:12px; margin-bottom:10px; overflow:hidden; transition:border-color .2s; }
.nd-faq details:last-child{ margin-bottom:0; }
.nd-faq details[open]{ border-color:var(--gold); }
.nd-faq summary{ padding:16px 20px; font-weight:600; font-size:.95rem; color:var(--ink); cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.nd-faq summary::-webkit-details-marker{ display:none; }
.nd-faq summary::after{ content:'+'; font-size:1.3rem; font-weight:300; color:var(--gold); flex:none; transition:transform .2s; }
.nd-faq details[open] summary::after{ transform:rotate(45deg); }
.nd-faq summary:hover{ background:var(--gold-faint); }
.nd-faq details p{ padding:0 20px 18px; margin:0; font-size:.92rem; line-height:1.7; color:var(--ink-soft); }
[data-theme="dark"] .nd-seo-copy{ background:#12110e !important; border-color:#2e2e33 !important; }
[data-theme="dark"] .nd-seo-copy h2{ color:#f5f5f7 !important; }
[data-theme="dark"] .nd-seo-copy p{ color:#b8b8be !important; }
[data-theme="dark"] .nd-faq{ background:#12110e !important; border-color:#2e2e33 !important; }
[data-theme="dark"] .nd-faq h2{ color:#f5f5f7 !important; }
[data-theme="dark"] .nd-faq details{ border-color:#2e2e33 !important; background:#1a1a1e !important; }
[data-theme="dark"] .nd-faq details[open]{ border-color:var(--gold) !important; }
[data-theme="dark"] .nd-faq summary{ color:#f5f5f7 !important; }
[data-theme="dark"] .nd-faq details p{ color:#b8b8be !important; }

/* Screener restructure (2026-10-04): ranked-stocks heading matches the RSI section heading */
.sc-rs-h{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin:26px 0 14px;color:var(--ink);letter-spacing:-.015em}
/* RSI tables: keep company names on one readable line */
.w1-table .w1-comp{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Screener: comprehensive dark-mode contrast fixes */
[data-theme="dark"] .w1-tab{ color:#c5c5cb !important; border-color:#3a3a40 !important; }
[data-theme="dark"] .w1-tab:hover{ color:#f5f5f7 !important; border-color:#5a5a62 !important; }
[data-theme="dark"] .sc-range-in::placeholder{ color:#8a8a92 !important; opacity:1 !important; }
[data-theme="dark"] .sc-range-in{ color:#f5f5f7 !important; background:#1a1a1e !important; border-color:#3a3a40 !important; }
[data-theme="dark"] .sc-reset{ color:#f5f5f7 !important; background:#2a2a2e !important; border-color:#3a3a40 !important; }
[data-theme="dark"] .sc-reset:hover{ background:#3a3a40 !important; }
[data-theme="dark"] .sc-table thead th{ color:#d5d5db !important; }
[data-theme="dark"] .sc-pager .cur, [data-theme="dark"] .sc-pager .active{ color:#0C1F16 !important; background:#e8dcc0 !important; }
[data-theme="dark"] .sc-sec-pill, [data-theme="dark"] .sector-pill{ color:#d8d5c8 !important; }
[data-theme="dark"] .sc-calls, [data-theme="dark"] .hit-calls{ color:#9a9aa2 !important; }
[data-theme="dark"] .sc-summary{ color:#b8b8be !important; }
[data-theme="dark"] .w1-note{ color:#9a9aa2 !important; }
.sc-table td .sym-wrap{ display:inline-flex !important; align-items:center !important; gap:8px !important; }

/* Fix: active RSI tab needs dark text on gold bg in dark mode (inactive !important was overriding),
   and white text on dark ink bg in light mode. */
[data-theme="dark"] .w1-tab[aria-selected="true"]{ color:#141311 !important; background:var(--gold) !important; border-color:var(--gold) !important; }
.w1-tab[aria-selected="true"]{ color:#fff !important; background:var(--ink) !important; border-color:var(--ink) !important; }

/* ============================================================
 * Premium 3D layer — theme.css shared components
 * ============================================================ */

/* Theme toggle: tactile dial */
.theme-toggle{
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 50%), transparent;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 1px 3px rgba(0,0,0,.3);
  transition: border-color .2s, background .2s, transform .15s cubic-bezier(.22,1,.36,1), box-shadow .2s;
}
.theme-toggle:hover{
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 3px 8px rgba(0,0,0,.35);
}
.theme-toggle:active{
  transform: translateY(1px) scale(.94);
  box-shadow: inset 0 2px 5px rgba(0,0,0,.3);
}

/* Screener tables: floating panels */
.sc-table{
  border-radius: 14px;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 1px 2px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.28);
}
.sc-table thead th{
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0) 60%), var(--th-bg, #1a1a1e);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.sc-table tbody tr{ transition: background .15s, transform .15s; }
.sc-table tbody tr:hover{ transform: translateX(2px); }

/* FAQ accordions: depth */
.nd-faq{
  border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 1px 2px rgba(0,0,0,.3), 0 4px 14px rgba(0,0,0,.22);
  transition: box-shadow .25s, transform .25s cubic-bezier(.22,1,.36,1);
}
.nd-faq:hover{
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 3px 8px rgba(0,0,0,.35), 0 10px 28px rgba(0,0,0,.28);
}

@media (prefers-reduced-motion: reduce){
  .theme-toggle, .nd-faq{ transition: none; }
  .theme-toggle:hover, .nd-faq:hover{ transform: none; }
}

/* ============================================================
   Blog footer (.sf) + baked article components (.td-*) — token
   remediation (2026-10-23). The .sf footer markup is baked into
   59 blog articles: 52 carry the old light-palette .sf styles
   inline, 7 carry none at all (their footer logo SVG rendered
   at default size = full width). These rules are anchored at
   higher specificity than the baked copies and map every colour
   to the --nd-* tokens, so the footer and the baked .td-table /
   .td-incta / .td-toolsbox components follow the site theme
   (dark default, light under [data-nd-ed="light"]) everywhere.
   ============================================================ */
.sf.sf{
  border-top:1px solid var(--nd-border); margin-top:64px;
  background:var(--nd-panel); color:var(--nd-muted);
  font-family:var(--nd-font-sans);
}
.sf .sf-inner{max-width:1200px;margin:0 auto;padding:56px 24px 30px}
.sf .sf-top{display:flex;gap:18px;align-items:flex-start;margin-bottom:42px}
.sf .sf-mark{width:46px;height:46px;border-radius:12px;flex:none;box-shadow:var(--nd-e1)}
.sf .sf-name{font-weight:700;font-size:1.06rem;color:var(--nd-text);margin:2px 0 8px;letter-spacing:.01em}
.sf .sf-mission{margin:0;max-width:62ch;line-height:1.75;font-size:.92rem;color:var(--nd-muted)}
.sf .sf-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 28px;margin-bottom:42px}
.sf .sf-col h3{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--nd-dim);margin:0 0 16px;font-weight:700}
.sf .sf-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.sf .sf-col a{color:var(--nd-muted);text-decoration:none;font-size:.92rem;line-height:1.5}
.sf .sf-col a:hover{color:var(--nd-lime);text-decoration:underline}
.sf .sf-note{border-top:1px solid var(--nd-border);padding-top:26px;font-size:.85rem;line-height:1.75;color:var(--nd-dim);max-width:88ch;margin:0}
.sf .sf-note strong{color:var(--nd-muted)}
.sf .sf-bottom{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:center;margin-top:26px;padding-top:22px;border-top:1px solid var(--nd-border);font-size:.85rem;color:var(--nd-dim)}
.sf .sf-bottom a{color:var(--nd-muted);text-decoration:none;font-weight:600}
.sf .sf-bottom a:hover{color:var(--nd-lime);text-decoration:underline}
.sf .sf-social{display:flex;gap:16px;align-items:center}
.sf .sf-social svg{width:20px;height:20px;flex:none}
@media(max-width:820px){.sf .sf-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}}
@media(max-width:520px){.sf .sf-inner{padding:44px 20px 26px}.sf .sf-top{margin-bottom:34px}.sf .sf-cols{margin-bottom:34px}}

/* Baked .td-* components (4 articles): remap the fixed light
   palette to tokens. Compound selectors outrank the baked
   per-article <style> copies. */
.td-table.nd-table caption{color:var(--nd-text)}
.td-table.nd-table th{background:var(--nd-panel);color:var(--nd-dim);border-bottom:1px solid var(--nd-border-strong)}
.td-table.nd-table td{border-bottom:1px solid var(--nd-border)}
.td-table.nd-table td:first-child{color:var(--nd-muted)}
.td-table.nd-table .pos{color:var(--nd-up)}
.td-table.nd-table .neg{color:var(--nd-down)}
.td-incta.td-incta{background:var(--nd-panel);border-color:var(--nd-border);border-left-color:var(--nd-lime);color:var(--nd-text)}
.td-incta.td-incta a{color:var(--nd-lime)}
.td-toolsbox.td-toolsbox{background:var(--nd-panel);border-color:var(--nd-border);color:var(--nd-text)}
.td-toolsbox .td-toolsbox-kicker{color:var(--nd-dim)}
.td-toolsbox .td-toolsbox-head{color:var(--nd-text)}
.td-toolsbox.td-toolsbox a{color:var(--nd-text)}
.td-toolsbox.td-toolsbox a:hover{color:var(--nd-lime)}
