*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: 1.55;
}

h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 var(--space-3); color: var(--color-primary); }
h1 { font-size: var(--font-size-3xl); }
h2 { font-size: var(--font-size-2xl); }
h3 { font-size: var(--font-size-xl); }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-primary-light); text-decoration: none; }
a:hover { text-decoration: underline; }

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--space-5);
}

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main {
  flex: 1;
  padding: var(--space-6) 0 var(--space-8);
}

img { max-width: 100%; display: block; }

table { border-collapse: collapse; width: 100%; }

@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
  .container { max-width: 100%; padding: 0; }
}
