/* Real text colors survive browsers that replace gradient backgrounds in dark mode. */
:root { color-scheme: light dark; }
.theme-a .hero h1 span { background: none; color: #176db0; }
.ct-page .ct-chat-text, .ct-page .ct-title-accent, .ct-page .ct-stat-num, .ct-page .ct-question {
  background: none; -webkit-background-clip: border-box; background-clip: border-box;
}
.ct-page .ct-stat-num { color: #176db0; }
.zy-page .zy-tier-badge, .zy-page .zy-tier-chip { background: var(--c1); color: #111923; }
.zy-page .zy-tier-chip-sc, .zy-page .zy-tier-chip-en { opacity: 1; }
.ct-page .ct-fb-verdict.no .ct-fb-verdict-ic { background: #b42c4b; }
.ct-page .ct-fb-verdict.ok .ct-fb-verdict-ic { background: #087c52; }
/* Topic covers sit outside article, so they need the same width constraint. */
.article-cover { display: block; max-width: 100%; height: auto; }

@media (prefers-color-scheme: light) {
  body.jzt-brand, body.theme-a, body.bb-page, body.zy-page, body.policy-page, body.ct-page {
    --muted: #52667e; --accent: #176db0; --pink: #b02a51;
    --brand-muted: #52667e; --brand-blue: #176db0; --brand-pink: #b02a51;
  }
  body.zy-page {
    --zy-ink-soft: #52667e; --zy-gold: #176db0; --zy-gold-soft: #52667e;
    --zy-swot-good: #087c52; --zy-swot-warn: #975012;
    --zy-swot-up: #176db0; --zy-swot-caution: #b02a51;
  }
  body.ct-page { --ct-dim: #52667e; }
  .ct-page .ct-fb-verdict.ok .ct-fb-verdict-text { color: #07603f; }
  .ct-page .ct-fb-verdict.ok .ct-fb-verdict-delta { color: #145487; }
  .theme-a .hero .eyebrow, .jzt-brand .anytime b, .jzt-brand .section-number,
  .gx-nav-link:hover, .gx-nav-link.active, .policy-page .tab.active,
  .library-hero h1 span, .library-more, .library-card-meta span, .library-pagination a,
  .guide-page article a, .guide-section .guide-more, .tags span,
  .cta-btns a.ghost, .app-bridge-actions .secondary, .public-download .brand-name,
  .public-download .tip a, .public-download .facts a,
  .brand-film-page a, body > main > p > a, .pager a, .app-question strong { color: #176db0; }
  .jzt-brand .nav-button, .gx-nav-link.gx-nav-cta, nav.top a.dl, .library-page nav.top a.dl,
  .cta-btns a.primary, .app-bridge-actions .primary, .library-app a, .library-pagination strong,
  .public-download .btn-primary, .download-landing .download-btn { background: #176db0; color: #fff; }
  .jzt-brand .understand small, .jzt-brand .anytime span,
  .gx-nav-logo > span, .gx-footer, .brand .sub,
  .meta, .brief, ul.article-list .brief, footer.site, footer.site a,
  .library-intro, .library-count span, .library-topic span, .library-topic small,
  .library-card-brief, .library-card-meta, .library-breadcrumb, .library-section-head p,
  .library-pagination .page-gap, .library-app p, .library-page footer.site, .library-page footer.site a,
  .guide-hero p, .guide-group-head p, .guide-boundary, .guide-breadcrumb,
  .guide-page article dd, .topic-card span, .app-bridge p, .trust-panel p, .trust-panel .trust-note, .trust-panel p.trust-note,
  .download-landing .platform-item, .public-download .brand-sub,
  .public-download .tip, .public-download .facts, .public-download .footer,
  .brand-demo .tabs, .brand-demo .input-hint, .brand-demo .nav-item { color: #52667e; }
  .library-kicker, .guide-kicker, .app-bridge .eyebrow { color: #b02a51; }
  .guide-grid .guide-section:nth-child(n) .guide-group-number { color: #176db0; }
  .theme-a .download { background: linear-gradient(115deg, #075497, #1769ad); }
  .zy-page .zy-app-cta-title { color: #102d4f; }
  .zy-page .zy-app-cta-desc { color: #52667e; }
  .zy-page .zy-app-cta-btn { background: #176db0; color: #fff; }
  .brand-demo .candy-tag span, .brand-demo .nav-item.active { color: #b02a51; }
  .wrap > p[style], .safety-note p[style], .public-download .footer a, .trust-panel .trust-note { color: #52667e !important; }
}

@media (prefers-color-scheme: dark) {
  :root {
    --jzt-bg: #111923; --jzt-surface: #1b2736; --jzt-raised: #243449;
    --jzt-text: #e6edf7; --jzt-muted: #a7b8cd; --jzt-link: #79c2ff;
    --jzt-pink: #ff9bb8; --jzt-border: #40536b; --jzt-button: #1769ad;
  }
  html, body, body.library-page {
    background: var(--jzt-bg); color: var(--jzt-text);
  }
  body.jzt-brand, body.theme-a, body.bb-page, body.zy-page, body.policy-page,
  body.ct-page, body.download-landing, body.brand-demo, body.public-download, body.brand-film-page {
    --ink: var(--jzt-text); --muted: var(--jzt-muted); --accent: var(--jzt-link);
    --pink: var(--jzt-pink); --line: var(--jzt-border);
    --brand-ink: var(--jzt-text); --brand-muted: var(--jzt-muted);
    --brand-blue: var(--jzt-link); --brand-pink: var(--jzt-pink); --brand-line: var(--jzt-border);
    background: var(--jzt-bg); color: var(--jzt-text);
  }
  body.zy-page {
    --zy-ink: var(--jzt-text); --zy-ink-soft: var(--jzt-muted);
    --zy-gold: var(--jzt-link); --zy-gold-soft: var(--jzt-muted); --zy-gold-line: var(--jzt-border);
    --zy-parch-top: var(--jzt-bg); --zy-parch-mid: var(--jzt-bg); --zy-parch-low: var(--jzt-bg);
    --zy-card-bg: var(--jzt-surface); --zy-card-bg2: var(--jzt-raised); --zy-card-border: var(--jzt-border);
    --zy-search-bg: var(--jzt-surface); --zy-text-body: var(--jzt-text);
    --zy-stat-good: #8be2bb; --zy-stat-good-bg: #193c32;
    --zy-stat-warn: #ffd08c; --zy-stat-warn-bg: #46331d;
    --zy-stat-bad: #ffa5ae; --zy-stat-bad-bg: #472831; --zy-mark-bg: #59431e;
    --zy-swot-good: #8be2bb; --zy-swot-good-bg: #193c32;
    --zy-swot-warn: #ffd08c; --zy-swot-warn-bg: #46331d;
    --zy-swot-up: var(--jzt-link); --zy-swot-up-bg: #21374e;
    --zy-swot-caution: var(--jzt-pink); --zy-swot-caution-bg: #472831;
  }
  body.ct-page {
    --ct-bg: var(--jzt-bg); --ct-bg-soft: var(--jzt-surface);
    --ct-white: var(--jzt-text); --ct-dim: var(--jzt-muted);
    --ct-neon: var(--jzt-pink); --ct-neon-deep: #c54470;
    --ct-violet: var(--jzt-link); --ct-gold: #ffd08c; --ct-gold-deep: #e5af63;
    --ct-glass: var(--jzt-surface); --ct-glass-line: var(--jzt-border);
  }
  .jzt-brand .header, .gx-nav, .gx-nav-links, header.site {
    background: #111923f5; border-color: var(--jzt-border);
  }
  .gx-nav-link, .gx-nav-menu, .gx-footer strong, .brand a,
  .library-page .brand a, nav.top a { color: var(--jzt-text); }
  .gx-nav-logo > span, .brand .sub { color: var(--jzt-muted); }
  .gx-nav-link:hover, .gx-nav-link.active { background: var(--jzt-raised); color: var(--jzt-link); }
  .jzt-brand .app-nav, .gx-nav-menu { border-color: var(--jzt-border); }
  .jzt-brand .site-nav.is-open { background: var(--jzt-surface); }
  .theme-a .hero, .bb-page .bb-hero, .zy-page .zy-hero, .library-hero,
  .guide-hero, .app-bridge, .trust-panel {
    background: linear-gradient(115deg, #192b40, #292334); border-color: var(--jzt-border);
  }
  .theme-a .hero h1 span, .theme-a .hero .eyebrow,
  .bb-hero-title .accent, .library-hero h1 span,
  .ct-page .ct-title-accent, .ct-page .ct-chat-text, .ct-page .ct-stat-num {
    color: var(--jzt-link);
  }
  .theme-a .proof, .jzt-brand .scenarios, .jzt-brand .tools,
  .jzt-brand .about, .jzt-brand .app-start, .zy-page .page-zy,
  .zy-page .zy-search-wrap, .ct-page .page-ct { background: var(--jzt-bg); }
  .jzt-brand .float-card, .jzt-brand .article-card, .jzt-brand .round-button,
  .jzt-brand .product-tabs, .jzt-brand .product-tabs button, .jzt-brand .hero-phone, .jzt-brand .product-phone,
  .jzt-brand .visual-label, .jzt-brand .film-screen,
  .bb-page .bb-card, .policy-page .container, .policy-page .tabs,
  .ct-page .ct-chat-bubble, .ct-page .ct-intro-card, .ct-page .ct-qcard,
  .ct-page .ct-feedback, .download-landing .container,
  article, .answer-lead, .answer-section, .topic-card, .library-card, .guide-section,
  ul.article-list li, .public-download .hero, .public-download .tip, .public-download .facts {
    background: var(--jzt-surface); border-color: var(--jzt-border);
  }
  .theme-a .product-panel, .theme-a [data-panel="1"], .theme-a [data-panel="2"] {
    background: var(--jzt-surface);
  }
  .jzt-brand .scene-tabs button, .jzt-brand .hero-tags > span,
  .jzt-brand .tool-row > span, .jzt-brand .app-start .start-steps span,
  .bb-page .bb-tag, .bb-page .bb-card-emoji, .bb-page .bb-app-cta,
  .zy-page .zy-app-cta, .ct-page .ct-badge, .ct-page .ct-badge-hot,
  .ct-page .ct-option, .ct-page .ct-opt-key, .policy-page .tab.active,
  .cta, .app-question, .library-topic, .library-topic:nth-child(n), .library-app,
  .guide-page article .answer-lead, .guide-group-number, .guide-grid .guide-group-number,
  article blockquote, article code, .tags span, .safety-note {
    background: var(--jzt-raised); border-color: var(--jzt-border); color: var(--jzt-text);
  }
  .jzt-brand .scene-tabs button[aria-pressed="true"], .jzt-brand .product-tabs [aria-selected="true"],
  .jzt-brand .primary, .jzt-brand .nav-button, .gx-nav-link.gx-nav-cta, nav.top a.dl, .library-page nav.top a.dl,
  .bb-page .bb-app-cta-btn, .zy-page .zy-filter-btn.active, .zy-page .zy-app-cta-btn,
  .ct-page .ct-start-btn, .ct-page .ct-fb-next, .ct-page .ctr-btn-primary, .ct-page .ctr-app-btn,
  .download-landing .download-btn, .cta-btns a.primary, .app-bridge-actions .primary,
  .library-pagination strong, .library-app a, .public-download .btn-primary {
    background: var(--jzt-button); border-color: var(--jzt-link); color: #fff;
  }
  .jzt-brand .secondary, .cta-btns a.ghost, .library-pagination a,
  .brand-film-page .controls button, .public-download .btn-secondary {
    background: var(--jzt-surface); color: var(--jzt-link); border-color: var(--jzt-border);
  }
  .theme-a .download { background: #153555; color: var(--jzt-text); }
  .theme-a .download .eyebrow, .theme-a .download p, .theme-a .download .support-note,
  .theme-a .download .download-qr small { color: #c4d8ee !important; }
  .theme-a .download .primary { background: #1769ad; color: #fff; }
  .theme-a .download .secondary { background: transparent; color: var(--jzt-text); }
  .jzt-brand footer, .gx-footer { background: var(--jzt-bg); border-color: var(--jzt-border); }
  .jzt-brand .understand small, .jzt-brand .anytime span, .gx-footer,
  .bb-page .bb-tag, .policy-page .tab, .policy-page .policy-intro,
  .meta, .brief, footer.site, footer.site a, .library-page footer.site, .library-page footer.site a,
  .library-intro, .library-count span, .library-topic span, .library-topic small,
  .library-card-brief, .library-card-meta, .library-breadcrumb, .library-section-head p,
  .library-pagination .page-gap, .library-app p, ul.article-list .brief,
  .guide-hero p, .guide-group-head p,
  .guide-boundary, .guide-breadcrumb, .guide-page article dd, .topic-card span,
  .app-bridge p, .trust-panel p, .cta-text p,
  .download-landing .scan-text, .download-landing .platform-item,
  .public-download .brand-sub, .public-download .tip, .public-download .facts, .public-download .footer {
    color: var(--jzt-muted);
  }
  .policy-page h1, .policy-page .content-text, .ct-page .ct-intro-title,
  .ct-page .ct-opt-text, .ct-page .ct-option.picked .ct-opt-text,
  .ct-page .ct-quote-inner .ct-quote-text, .ct-page .ct-fb-jury,
  .ct-page .ctr-summary-body, .ct-page .ctr-insight-body, .ct-page .ctr-reveal-heart,
  article h3, article h4, article strong, .guide-section h2, .guide-links a,
  .library-card-link, .topic-card, .cta-text h3, .trust-panel h3, ul.article-list a { color: var(--jzt-text); }
  .policy-page .tab.active, .bb-page .bb-card-cta, .ct-page .ct-opt-key,
  .ct-page .ct-quote-scene .ct-quote-label, .ct-page .ct-quote-inner .ct-quote-label,
  .ct-page .ctr-insight-label, .library-more, .library-card-meta span,
  .library-pagination a, .guide-page article a, .guide-section .guide-more,
  .app-bridge-actions .secondary, .tags span { color: var(--jzt-link); }
  .ct-page .ct-question, .library-kicker, .guide-kicker,
  .app-bridge .eyebrow { color: var(--jzt-pink); }
  .ct-page .ct-option.picked { background: #422a3e; border-color: var(--jzt-pink); }
  .ct-page .ct-fb-verdict.ok .ct-fb-verdict-text, .ct-page .ctr-wrong-mark.ctr-mark-ok,
  .ct-page .ctr-wrong-answer-text { color: #8be2bb; }
  .ct-page .ct-fb-verdict.no .ct-fb-verdict-text, .ct-page .ct-fb-verdict.no .ct-fb-verdict-delta,
  .ct-page .ct-quote-react.door-slam .ct-quote-label, .ct-page .ct-quote-react.door-slam .ct-quote-text,
  .ct-page .ctr-header-label.ctr-gameover, .ct-page .ctr-wrong-mark, .ct-page .ctr-wrong-picked-text {
    color: #ffa5ae;
  }
  .zy-page .zy-search input::placeholder { color: var(--jzt-muted); opacity: 1; }
  .zy-page .zy-dt-radar-wrap, .zy-page .zy-trend-bars, .zy-page .zy-dt-roast {
    background: var(--jzt-raised);
  }
  .zy-page .zy-school-b { background: var(--jzt-button); }
  .zy-page .zy-app-cta-title { color: var(--jzt-text); }
  .zy-page .zy-app-cta-desc { color: var(--jzt-muted); }
  .download-landing .bg-layer, .brand-demo .bg-layer { background: var(--jzt-bg); }
  .download-landing .app-name, .download-landing .subtitle { color: var(--jzt-text); }
  .jzt-brand .skip, .library-page .skip-link { background: var(--jzt-surface); color: var(--jzt-text); }
  .guide-grid .guide-section:nth-child(n) .guide-group-number {
    background: var(--jzt-raised); color: var(--jzt-link);
  }
  /* These legacy notes and footer links carry inline color declarations. */
  .wrap > p[style], .safety-note p[style], .public-download .footer a, .trust-panel .trust-note {
    color: var(--jzt-muted) !important;
  }
  .public-download .brand-name, .public-download .tip a, .public-download .facts a {
    color: var(--jzt-link);
  }
  .brand-demo .phone-container, .brand-demo .main-card, .brand-demo .bottom-nav,
  .brand-demo .date-badge { background: var(--jzt-surface); border-color: var(--jzt-border); }
  .brand-demo .tabs, .brand-demo .input-hint, .brand-demo .nav-item,
  .brand-demo .date-badge { color: var(--jzt-muted); }
  .brand-demo .tab-item.active, .brand-demo .card-title, .brand-demo .quote-main,
  .public-download .hero-title, .public-download .hero-list li { color: var(--jzt-text); }
  .brand-demo .quote-sub { color: var(--jzt-muted); }
  .brand-demo .record-btn { background: var(--jzt-raised); color: var(--jzt-text); }
  .brand-demo .input-hint { background: none; }
  .brand-demo .candy-tag span, .brand-demo .nav-item.active { color: var(--jzt-pink); }
  .jzt-brand .mobile-download { background: var(--jzt-surface); }
  .jzt-brand .mobile-download a { background: var(--jzt-button); color: white; }
}
