/* One type scale and shared shell for every ChartScope page. Load after page CSS. */
:root {
  --cs-font-body: 'Manrope', sans-serif;
  --cs-font-display: 'Space Grotesk', sans-serif;
  --cs-text-h1: 56px;
  --cs-text-h2: 30px;
  --cs-text-h3: 20px;
  --cs-text-h4: 17px;
  --cs-text-body: 15px;
  --cs-text-lead: 16px;
  --cs-text-small: 12px;
  --cs-text-label: 10px;
  --cs-bg: #080c10;
  --cs-surface: #10171d;
  --cs-text: #f1f5f4;
  --cs-muted: #9da9ae;
  --cs-accent: #8be5e3;
  --cs-line: rgba(193,216,222,.13);
  --bg-primary: var(--cs-bg);
  --bg-secondary: var(--cs-surface);
  --bg-card: var(--cs-surface);
  --text-primary: var(--cs-text);
  --text-secondary: #b4bfc3;
  --text-tertiary: var(--cs-muted);
}
body, body.premium-page { margin: 0; background: var(--cs-bg); color: var(--cs-text); font-family: var(--cs-font-body); font-size: var(--cs-text-body); line-height: 1.8; }
body main#main-content h1, body.premium-page main#main-content h1 { font-family: var(--cs-font-display); font-size: var(--cs-text-h1); line-height: 1.08; font-weight: 500; letter-spacing: -.045em; text-wrap: balance; }
body main#main-content h2, body.premium-page main#main-content h2 { font-family: var(--cs-font-display); font-size: var(--cs-text-h2); line-height: 1.25; font-weight: 500; letter-spacing: -.035em; }
body main#main-content h3, body.premium-page main#main-content h3 { font-family: var(--cs-font-display); font-size: var(--cs-text-h3); line-height: 1.4; font-weight: 500; letter-spacing: -.025em; }
body main#main-content h4, body.premium-page main#main-content h4 { font-family: var(--cs-font-display); font-size: var(--cs-text-h4); line-height: 1.5; font-weight: 500; letter-spacing: -.015em; margin: 24px 0 12px; }
body.premium-page main#main-content.content, body.premium-page main#main-content.article-container { font-size: var(--cs-text-body); padding-top: 78px; padding-bottom: 96px; }
body.premium-page main#main-content p, body.premium-page main#main-content li, body.premium-page main#main-content blockquote { font-size: var(--cs-text-body); line-height: 1.8; }
body.premium-page main#main-content ul, body.premium-page main#main-content ol { margin-inline-start: 0; }
body.premium-page main#main-content .page-header p, body.premium-page main#main-content .article-intro, body.premium-page main#main-content .subtitle { font-size: var(--cs-text-lead); line-height: 1.8; }
body.premium-page main#main-content :is(.article-author-byline,.author-byline,.article-meta,.article-date,.article-reading-time,.article-read-time,.updated,.breadcrumb,figcaption) { font-size: var(--cs-text-small); line-height: 1.8; color: var(--cs-muted); }
body.premium-page main#main-content .article-author-byline { font-size: var(--cs-text-small) !important; }
body.premium-page main#main-content :is(.article-meta,.author-byline) { font-family: var(--cs-font-body); }
body.premium-page main#main-content .author-byline { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-block:12px 24px; }
body.premium-page main#main-content :is(.article-meta,.author-byline) :is(p,span,time,a) { font-size: inherit; line-height: inherit; }
body.premium-page main#main-content :is(.article-meta,.author-byline) img { border-radius: 8px; }
body.premium-page main#main-content .author-avatar { background: var(--cs-surface); border: 1px solid var(--cs-line); color: var(--cs-accent); border-radius: 8px; font-size: var(--cs-text-small); }
body.premium-page main#main-content :is(.disclaimer,.disclaimer-box,.unit,.freshness-badge,.expertise-tag,.article-tag) { font-size: var(--cs-text-small); line-height: 1.8; }
body.premium-page main#main-content :is(.disclaimer,.disclaimer-box) p { font-size: inherit; }
body.premium-page main#main-content :is(th,td) { font-size: 13px; line-height: 1.65; }
body.premium-page main#main-content :is(th,td) :is(p,li) { font-size: inherit; }
body.premium-page .page-header h1, body.page-blog-index main > h1 { font-size: var(--cs-text-h1); }
body.premium-page .page-header { margin-bottom: 48px; padding-bottom: 32px; }
body.page-blog-index main > h1 { margin-bottom: 48px; }
body.page-blog-index main > ul > li strong { font-size: var(--cs-text-h3); line-height:1.4; font-weight:500; }
body.premium-page .intro-standalone, body.premium-page .stat-callout { font-size: var(--cs-text-body); line-height:1.8; }
body.premium-page .stat-callout { color:var(--cs-text); background:var(--cs-surface); border:1px solid var(--cs-line); border-left:2px solid var(--cs-accent); border-radius:0 10px 10px 0; }
body.premium-page main#main-content .stat-callout strong { font-size:inherit; }
body.premium-page main#main-content .faq-question { font-family:var(--cs-font-body); font-size:var(--cs-text-body); line-height:1.8; }
body.premium-page main#main-content .faq-answer { font-size:var(--cs-text-body); line-height:1.8; }
body.premium-page main#main-content .promo-panel, body.premium-page main#main-content .cta-box { background: radial-gradient(ellipse at top right,#8be5e310,transparent 70%),var(--cs-surface); border:1px solid var(--cs-line); border-radius:14px; padding:32px; margin:40px 0; text-align:left; }
body.premium-page main#main-content .promo-panel .promo-title { font-family:var(--cs-font-display); font-size:var(--cs-text-h3); font-weight:500; letter-spacing:-.025em; color:var(--cs-text); line-height:1.4; margin-bottom:16px; }
body.premium-page main#main-content .promo-panel .promo-note { font-size:var(--cs-text-small); color:var(--cs-muted); margin-top:16px; margin-bottom:0; }
body.premium-page main#main-content .promo-panel p { max-width:100%; margin-left:0; margin-right:0; }
body.premium-page main#main-content .promo-panel ul { list-style:none; padding:0; margin:0 0 24px; display:block; }
body.premium-page main#main-content :is(.promo-button,.cta-button,.cta-btn) { display:inline-flex; justify-content:center; align-items:center; min-height:48px; max-width:100%; padding:14px 22px; border:1px solid transparent; border-radius:9px; background:var(--cs-text); color:var(--cs-bg)!important; font:600 12px/1.6 var(--cs-font-body); text-align:center; text-decoration:none; white-space:normal; transition:background .2s,transform .2s; }
body.premium-page main#main-content :is(.promo-button,.cta-button,.cta-btn):hover { background:var(--cs-accent); transform:translateY(-2px); }
body.premium-page main#main-content .reading-links { margin:32px 0 24px; }
body.premium-page main#main-content .reading-links>p { font-size:var(--cs-text-label); letter-spacing:.12em; text-transform:uppercase; }
body.premium-page main#main-content .reading-links ul { list-style:none; padding:0; }
/* Marketing layouts use the same text roles as editorial and utility pages. */
body main#main-content :is(.hero-description,.section-heading>p,.perspective-copy>p:not(.eyebrow),.privacy-principles p,.language-layout>div>p:last-child,.pricing-copy>p:not(.eyebrow),.faq-list p) { font-size:var(--cs-text-body); line-height:1.8; }
body main#main-content .feature-tab strong { font:500 var(--cs-text-h3)/1.4 var(--cs-font-display); letter-spacing:-.025em; }
body main#main-content :is(.feature-tab>span>span,.included) { font-size:var(--cs-text-body); line-height:1.8; }
body main#main-content .faq-list summary { font-size:var(--cs-text-body); }
body main#main-content .closing-section h2 { font-size:var(--cs-text-h1); line-height:1.08; letter-spacing:-.045em; }
/* Same static navigation markup, dimensions, behavior and footer on every route. */
body .site-header { position:sticky; top:0; z-index:20; padding:0; background:#080c10ed; border-bottom:1px solid var(--cs-line); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }
body .site-header .navigation { position:static; inset:auto; display:flex; align-items:center; justify-content:space-between; width:min(1280px,calc(100% - 112px)); max-width:none; height:84px; min-height:0; padding:0; margin:0 auto; gap:28px; background:none; border:0; backdrop-filter:none; }
body .site-header .brand, body .site-footer .brand { display:flex; align-items:center; gap:10px; margin:0; padding:0; font:600 22px/1.5 var(--cs-font-display); letter-spacing:-.8px; color:var(--cs-text); text-decoration:none; }
body .site-header .brand img, body .site-footer .brand img { display:block; width:34px; height:34px; border-radius:10px; }
body .site-header .nav-links { display:flex; flex-direction:row; align-items:center; gap:34px; padding:0; margin:0; background:none; }
body .site-header .nav-links>a { display:inline-flex; align-items:center; padding:0; margin:0; font:500 12px/1.65 var(--cs-font-body); color:#b5bfc3; text-decoration:none; }
body .site-header .nav-links>a:hover,body .site-header .nav-links>a[aria-current='page'] { color:var(--cs-accent); }
body .site-header .nav-links .nav-download { gap:22px; padding:11px 16px; border:1px solid #7f929643; border-radius:7px; margin-left:10px; color:var(--cs-text); background:none; }
body .site-header .nav-download svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.5; }
body .site-header .menu-toggle { display:none; }
body .site-footer { width:min(1280px,calc(100% - 112px)); margin:0 auto; padding:43px 0 0; background:var(--cs-bg); text-align:left; border-top:0; color:var(--cs-muted); font-family:var(--cs-font-body); line-height:1.8; }
body .site-footer .footer-top { display:flex; align-items:center; gap:36px; padding:0 0 30px; border-bottom:1px solid var(--cs-line); }
body .site-footer .footer-top>p { margin:0; padding:0; color:var(--cs-muted); font-size:12px; }
body .site-footer .back-top { margin-left:auto; white-space:nowrap; }
body .site-footer .footer-middle { display:flex; justify-content:space-between; gap:28px; padding:30px 0; }
body .site-footer .footer-middle>p { margin:0; color:var(--cs-muted); font:400 12px/1.8 var(--cs-font-body); }
body .site-footer nav { position:static; inset:auto; display:flex; align-items:flex-start; flex-wrap:wrap; gap:16px 24px; max-width:460px; margin:0; padding:0; background:none; border:0; backdrop-filter:none; }
body .site-footer a { display:inline-flex; margin:0; padding:0; color:var(--cs-muted); font:500 12px/1.8 var(--cs-font-body); text-decoration:none; }
body .site-footer a:hover { color:var(--cs-accent); }
body .site-footer .footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--cs-line); padding:22px 0; color:var(--cs-muted); font:400 12px/1.8 var(--cs-font-body); }
body .site-footer .footer-bottom>div { display:flex; flex-wrap:wrap; gap:23px; }
body .site-footer .footer-bottom button { padding:0; border:0; background:none; color:inherit; font:inherit; cursor:pointer; }
body .site-footer [hidden] { display:none!important; }
body .site-header :focus-visible,body .site-footer :focus-visible { outline:2px solid var(--cs-accent); outline-offset:5px; }
@media(max-width:1150px){body .site-header .navigation,body .site-footer{width:calc(100% - 72px)}body .site-header .nav-links{gap:24px}}
@media(max-width:850px){body .site-header .navigation,body .site-footer{width:calc(100% - 48px)}body .site-header .nav-links{gap:18px}body .site-header .nav-links .nav-download{margin-left:0;gap:10px}body .site-footer .footer-middle{flex-wrap:wrap}body .site-footer .footer-middle>p{width:100%}}
@media(max-width:760px){
 :root{--cs-text-h1:36px;--cs-text-h2:26px;--cs-text-h3:18px;--cs-text-h4:16px;--cs-text-body:14px}
 body.premium-page main#main-content.content,body.premium-page main#main-content.article-container{padding:54px 20px 76px}
 body.premium-page main#main-content .promo-panel,body.premium-page main#main-content .cta-box{padding:24px}
 body .site-header .navigation{height:72px;gap:16px}
 body .site-header .brand,body .site-footer .brand{font-size:20px}
 body .site-header .brand img,body .site-footer .brand img{width:31px;height:31px}
 body .site-header.nav-enhanced .menu-toggle{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;width:44px;height:44px;padding:0;border:1px solid var(--cs-line);border-radius:8px;background:none;color:var(--cs-text);cursor:pointer}
 body .site-header .menu-toggle span{display:block;width:18px;height:1px;background:currentColor}
 body .site-header .menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(3.5px) rotate(45deg)}
 body .site-header .menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 body .site-header .nav-links{position:absolute;left:0;right:0;top:72px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:20px;max-height:calc(100dvh - 72px);overflow-y:auto;background:#0d151cf5;border-bottom:1px solid var(--cs-line);backdrop-filter:blur(20px)}
 body .site-header .nav-links[hidden]{display:none}
 body .site-header .nav-links>a{padding:13px 8px;font-size:14px}
 body .site-header .nav-links .nav-download{justify-content:space-between;padding:14px 13px;margin:10px 0 0}
 body .site-header:not(.nav-enhanced){position:relative}
 body .site-header:not(.nav-enhanced) .navigation{height:auto;flex-wrap:wrap;padding-block:18px}
 body .site-header:not(.nav-enhanced) .nav-links{position:static;width:100%;padding:0;border:0;background:none}
 body .site-footer .footer-top{flex-wrap:wrap;gap:15px}
 body .site-footer .footer-top>p{width:100%;order:3}
 body .site-footer .footer-middle{gap:24px;padding-block:25px}
 body .site-footer .footer-bottom{flex-direction:column;gap:14px}
}
@media(max-width:640px){body .site-header .navigation,body .site-footer{width:calc(100% - 40px)}}
@media(max-width:370px){body .site-header .navigation,body .site-footer{width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){body .site-header *,body .site-footer *{transition:none!important}}
/* Legacy article layouts share surfaces, while chart/data text keeps semantic colors. */
body.premium-page main#main-content :is(.state-card,.crossover-card,.doji-card,.sr-card,.role-reversal-box,.combine-box,.anti-box,.indicator-card,.indicator-box,.author-bio-box,.tech-item,.credential-card) { background:var(--cs-surface); border:1px solid var(--cs-line); border-radius:12px; box-shadow:none; }
body.premium-page main#main-content details { border:0; border-bottom:1px solid var(--cs-line); border-radius:0; background:transparent; margin:0; padding:20px 0; }
body.premium-page main#main-content details summary { color:var(--cs-text); font:500 var(--cs-text-body)/1.8 var(--cs-font-body); cursor:pointer; }
body.premium-page main#main-content details[open] summary { color:var(--cs-accent); }
body.premium-page main#main-content details p { margin:16px 0 0; }
body .cookie-banner { position:fixed; inset:auto auto 20px 50%; transform:translateX(-50%); z-index:30; width:min(690px,calc(100% - 32px)); padding:18px 22px; border:1px solid #9fc4d134; border-radius:12px; background:#14212aee; box-shadow:0 15px 50px #0008; backdrop-filter:blur(20px); color:var(--cs-text); }
body .cookie-banner .cookie-banner-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; width:auto; max-width:none; margin:0; padding:0; }
body .cookie-banner .cookie-banner-text { font:400 11px/1.8 var(--cs-font-body); color:#b4c4cb; }
body .cookie-banner .cookie-banner-buttons { display:flex; gap:8px; flex-shrink:0; }
body .cookie-banner .cookie-btn { font:500 11px/1.6 var(--cs-font-body); min-height:40px; padding:10px 12px; border:1px solid #8ca6b54d; border-radius:6px; background:transparent; color:var(--cs-text); }
body .cookie-banner .cookie-btn-accept { background:var(--cs-text); color:var(--cs-bg); border-color:var(--cs-text); }
@media(max-width:760px){body .cookie-banner{bottom:12px;padding:15px 17px}body .cookie-banner .cookie-banner-inner{flex-direction:column;align-items:stretch;gap:12px}body .cookie-banner .cookie-banner-text{font-size:10px;flex-basis:auto}body .cookie-banner .cookie-banner-buttons{justify-content:flex-end;width:100%}body .cookie-banner .cookie-btn{font-size:10px;padding:9px 13px}}
body.premium-page main#main-content .page-header .updated { font-size:var(--cs-text-small); line-height:1.8; color:var(--cs-muted); }
body.premium-page main#main-content .author-avatar { display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:8px;background:var(--cs-surface);border:1px solid var(--cs-line);color:var(--cs-accent);font:600 var(--cs-text-small)/1 var(--cs-font-body); }
