*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--color-text);
    background: var(--color-bg);
    min-height: 100vh;
    overflow-x: hidden;
}
a { color: var(--color-highlight); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
button, input, textarea, select {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    background: none;
    border: none;
    outline: none;
}
button { cursor: pointer; }
table { border-collapse: collapse; width: 100%; }
h1, h2, h3, h4, h5, h6 { line-height: 1.3; font-weight: 700; }

/* Scrollable tables on mobile */
.table-wrapper, .article-content table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
