/* css/reset.css — Box-sizing, margin/padding reset, scrollbar styles, utility classes */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-overflow-scrolling: touch; }

body {
  background: var(--bg-primary);
  color: var(--text);
  font-family: var(--font-mono);
  font-size: var(--font-size-base);
  line-height: 1.5;
  /* overflow-x: clip (not hidden) so body doesn't become a scroll container.
     hidden forces overflow-y: auto per spec, which would trap sticky thead
     inside <body> and prevent pinning to viewport under the global nav. */
  overflow-x: clip;
  max-width: 100vw;
}

html {
  /* Same rationale as body. html MUST remain the document scroll container
     so position:sticky elements pin correctly to the viewport. Using clip
     here prevents accidental horizontal scroll without breaking sticky. */
  overflow-x: clip;
}

/* Scrollbar styles — dark theme across Webkit (Chrome/Safari/Edge) and Firefox */
html {
  scrollbar-width: thin;
  scrollbar-color: #333 transparent;
}
::-webkit-scrollbar { width: 8px; height: 8px; background: transparent; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: #333;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: #555; }
::-webkit-scrollbar-corner { background: transparent; }

/* Utility classes */
.up { color: var(--cyan); }
.down { color: var(--red); }
.neutral { color: var(--text-dim); }

a { color: inherit; text-decoration: none; }

/* Tap highlight */
a, button, .setup-card, tr { -webkit-tap-highlight-color: rgba(0,212,170,0.1); }

/* Prevent text selection on interactive elements */
.nav-link, .status-tab, .tier-tab, .filter-tab, .bias-toggle, .view-btn,
.em-tier-tab, .em-filter-tab, .events-filter-btn, .wl-view-btn {
  -webkit-user-select: none; user-select: none;
}
