/* Shared device fixes. Keep data tables scrollable inside their own panels. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { min-width: 0; }
img, video, iframe { max-width: 100%; }
main, main > *, header, footer { min-width: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.legal-copy { overflow-wrap: anywhere; }
/* Older WebKit can let offscreen decoration enlarge the layout viewport. */
.hero, .visual-card { overflow: hidden; }
@supports (overflow: clip) { .hero, .visual-card { overflow: clip; } }
@supports not (height: 100svh) { .hero { min-height: 540px; } }
@media (max-width: 1100px) {
 .site-header { gap: 16px; }
 .js-ready .menu-toggle { position: relative; z-index: 2; display: grid; width: 44px; height: 44px; flex-shrink: 0; place-content: center; gap: 6px; border: 1px solid rgba(229,240,248,.3); background: #071a31; }
 .menu-toggle i { display: block; width: 20px; height: 1px; background: currentColor; }
 .js-ready .site-nav { display: none; position: absolute; top: 76px; left: 21px; right: 21px; padding: 20px; flex-direction: column; align-items: stretch; gap: 8px; background: #041124; border: 1px solid rgba(229,240,248,.17); }
 .js-ready .site-nav.is-open { display: flex; }
 .site-nav a { min-height: 44px; }
 html:not(.js-ready) .site-header { position: relative; flex-wrap: wrap; }
 html:not(.js-ready) .site-nav { flex-wrap: wrap; flex-basis: 100%; }
}
@media (max-width: 540px) {
 .market-status { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
 .market-status > * { min-width: 0; white-space: normal; }
 .instrument-strip { min-width: 0; max-width: 100%; overflow-x: auto; }
 .u-chart .u-panel-head label { flex-basis: 100%; min-width: 0; }
 .u-chart .u-panel-head select { width: 100%; min-width: 0; }
 .u-actions { flex-wrap: wrap; }
 input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { font-size: 16px; }
 button, summary { min-height: 44px; }
 .site-header { padding-inline: max(16px,env(safe-area-inset-left)); }
 .site-footer { padding-bottom: max(24px,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) { button, input, select, textarea { border: 1px solid ButtonText; } }
