/* Account setting-row baseline: system sans, 13px/400/1.5; body 14px/400.
   Keep component geometry, numeric precision, semantic colors and icon fonts. */
:root {
  --jg-type-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", Roboto, sans-serif;
  --jg-type-body: #475569;
  --jg-type-heading: #475569;
  --jg-type-size: 14px;
  --jg-type-control-size: 13px;
}
html[data-theme="dark"] { --jg-type-body: #cbd5e1; --jg-type-heading: #e2e8f0; }
html body {
  font-family: var(--jg-type-family) !important;
  font-size: var(--jg-type-size);
  font-weight: 400;
  line-height: 1.5;
}
html[data-theme] body .page-content .page-root { color: var(--jg-type-body); }
html[data-theme] body .page-content :is(button,input,select,textarea):not(:is(.fa,.fas,.far,.fab,[class*="fa-"])) { font-family: var(--jg-type-family) !important; }
/* Text elements only: never replace Font Awesome or SVG typography. */
html[data-theme] body .page-content :is(p,li,dt,dd,label,summary,a,button,input,textarea,select,span):not(:is(.fa,.fas,.far,.fab,[class*="fa-"],.jg-icon,.jg-icon-fallback)) { font-weight: 400 !important; }
html[data-theme] body .page-content :is(strong,b):not(:is(.fa,.fas,.far,.fab,[class*="fa-"])) { font-weight: 500 !important; }
html[data-theme] body .page-content .page-root :is(h1,h2,h3,h4,h5,h6) { font-weight: 550 !important; }
html[data-theme] body .page-content .page-root :is(h1,h2,h3,h4,h5,h6):not(:is(button *,[role="button"] *,.td-up,.td-down,.text-up,.text-down,.text-red-500,.text-green-500)) { color: var(--jg-type-heading) !important; }
/* Functional names follow the Account list, without resizing descriptions or figures. */
html[data-theme] body .page-content .page-root :is(
  .ha-setting-row,.ha-setting-detail>summary,.ha-quick-actions strong,
  .ha-core-title,.ha-core-card strong,.ha-capability-grid>a>span,
  .ws-service h2,.ws-directory a>span,.ws-strategy>span,.ws-service-name,
  .radar-entry-title,.launch-mode strong,.ln-create-mode strong,
  .news-discovery-links strong,.market-subtab,.market-sector-trigger,
  .trade-tab,.swap-tab,.swap-field-label,.dx-tab,.dx-label
) { font-size: var(--jg-type-control-size) !important; font-weight: 400 !important; }
html[data-theme] body .page-content .page-root :is(
  .ha-core-card strong,.ha-capability-grid strong,.ha-quick-actions strong,
  .ws-directory strong,.market-sector-trigger strong
) { font-weight: 400 !important; }
html[data-theme] body .page-content :is(button,a)[aria-current="page"],
html[data-theme] body .page-content :is(button,a)[aria-selected="true"],
html[data-theme] body .page-content :is(button,a)[aria-pressed="true"] { font-weight: 500 !important; }
html[data-theme] body .page-content .page-root :is(th,.ln-cap .name,.ln-item-title) { font-weight: 500 !important; }
html[data-theme] body .page-content .page-root :is(.font-bold,.font-semibold,.font-extrabold,.font-black):not(:where(.fa,.fas,.far,.fab,[class*="fa-"])) { font-weight: 500 !important; }
/* Amounts keep their component-specific size, font variant, precision and red/green state. */
html[data-theme] body .page-content .page-root :is(
  .ha-market-overview strong,.ha-asset-price,.ha-asset-change,
  .market-price,.market-change,.mkt-card-stat .v,.td-price-row strong,
  .td-summary-metrics strong,#swap-from-amount,#swap-to-amount,.swap-token-list-balance
) { font-weight: 600 !important; }
html[data-theme] body .page-content .page-root :is(.news-story h2,.news-headline h3,.news-compact-row h3) { font-weight: 500 !important; }
