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

html { font-size: 16px; -webkit-text-size-adjust: 100%; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.5;
  min-height: 100vh;
}

/* Touch targets: min 44px auf Mobile */
@media (max-width: 768px) {
  button, .btn, .nav-item, select, input[type="checkbox"], input[type="radio"] {
    min-height: 44px;
  }
  .btn-xs, .btn-sm { min-height: 36px; }
}

/* Globaler Focus-Ring */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

h1 { font-size: 1.5rem; font-weight: 700; }
h2 { font-size: 1.25rem; font-weight: 600; }
h3 { font-size: 1.1rem; font-weight: 600; }

p { line-height: 1.6; }

ul, ol { padding-left: 1.5rem; }

hr { border: none; border-top: 1px solid var(--color-border); margin: 1rem 0; }

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
