/* Elon, Explained — shared responsive / a11y / overflow layer.
   Linked from every page. Keep visual identity; only fix layout, type, and CLS. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}
body { overflow-x: clip; }
img, video, svg, canvas { max-width: 100%; }
iframe, twitter-widget, .twitter-tweet {
  max-width: 100% !important;
}
/* Tables that are not already in .tablewrap / .tg-wrap still must not blow the viewport. */
table { max-width: 100%; }
.tablewrap, .tg-wrap, .nw-wrap { max-width: 100%; }
h1.m-wm { margin: 0; }

/* Touch targets for chips / filters / org-chart nodes (WCAG 2.5.8 ~24px min; we aim ~44). */
.qchip, .fchip { min-height: 44px; }
.azindex a, .azindex .dis { min-width: 44px; min-height: 44px; }
.node { min-height: 36px; padding: 8px 12px; display: inline-flex; align-items: center; }
.nav-toggle { width: 44px; height: 44px; }

/* Net-worth hover tip: nowrap overflows a 375px card. */
@media (max-width: 640px) {
  .nw-tip { white-space: normal; max-width: min(240px, calc(100% - 24px)); }
  .patients { grid-template-columns: 1fr; }
  .hstrip { gap: 16px 24px; }
}

/* Phone: stack footer columns and the subscribe row. */
@media (max-width: 480px) {
  .sf-top { grid-template-columns: 1fr; gap: 22px; }
  .sf-form { flex-direction: column; }
  .sf-form button { width: 100%; }
  .sf-mini { flex-direction: column; gap: 4px; }
  .ee-beta { width: min(350px, calc(100% - 28px)); }
}

/* Long tokens in KPI tiles / glossary terms wrap instead of forcing scroll. */
.tkpi b, .spec-v, .kv, .term .t, .dstat .dn {
  overflow-wrap: anywhere;
}
