@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/barlow-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/barlow-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/barlow-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/barlow-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow Semi Condensed'; font-style: normal; font-weight: 300; font-display: swap; src: url(/fonts/barlow-semi-condensed-latin-300-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow Semi Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/barlow-semi-condensed-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Barlow Semi Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/barlow-semi-condensed-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2'); }
:root { --bg: #f5f7f9; --surface: #ffffff; --text: #16263d; --muted: #66717f;
  --line: #d5dbe2; --accent: #b4602f; --accent-text: #a95a2c;
  --ok: #2e7d4f; --warn: #a16207; --bad: #b42318; --ink: #16263d; }
@media (prefers-color-scheme: dark) {
  :root { --bg: #0f1826; --surface: #172336; --text: #e6ebf1; --muted: #9aa6b4;
    --line: #2a3a50; --accent: #e08a55; --accent-text: #e08a55;
    --ok: #5fbf86; --warn: #e0a83c; --bad: #f2786b; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 17px/1.55 Barlow, system-ui, 'Segoe UI', Arial, sans-serif; }
h1, h2, h3 { font-family: 'Barlow Semi Condensed', 'Arial Narrow', Arial, sans-serif; font-weight: 600; line-height: 1.2; }
h1 { font-size: 2.2rem; margin: 0 0 16px; }
a { color: var(--accent-text); }
.breit { max-width: 960px; margin: 0 auto; padding: 0 16px; }
main.breit { padding-top: 32px; padding-bottom: 48px; min-height: 60vh; }
.kopf { background: var(--ink); color: #fff; }
.kopf .breit { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px;
  flex-wrap: wrap; }
.kopf nav { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.kopf nav a { color: #fff; text-decoration: none; }
.kopf nav a:hover { text-decoration: underline; }
.oh-logo { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.oh-logo svg { width: 26px; height: 26px; flex: none; }
.oh-word { font-family: 'Barlow Semi Condensed', 'Arial Narrow', Arial, sans-serif; font-size: 1.45rem; font-weight: 300; }
.oh-word b { font-weight: 700; }
.knopf, .knopf-rand { display: inline-block; padding: 10px 20px; border-radius: 4px;
  font-weight: 600; text-decoration: none; }
.knopf { background: #b4602f; color: #fff; }
.kopf nav .knopf-rand { border: 1px solid rgba(255,255,255,.6); padding: 6px 14px; }
@media (max-width: 560px) { .kopf nav .knopf-rand { display: none; } .fuss span { margin-left: 0; } }
.held { padding: 24px 0 16px; }
.held h1 { font-size: clamp(2rem, 6vw, 3.2rem); }
.gross { font-size: 1.15rem; max-width: 40em; }
.punkte { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 32px 0; }
.punkte article, .beitrag { background: var(--surface); border: 1px solid var(--line);
  border-radius: 8px; padding: 16px; }
.punkte h2 { font-size: 1.3rem; margin: 0 0 8px; }
.punkte p { margin: 0; }
.beitrag { margin-bottom: 12px; }
.beitrag h3 { margin: 0 0 4px; font-size: 1.25rem; }
.beitrag p { margin: 0; }
.datum, .leise, .stand { color: var(--muted); font-size: .9rem; margin: 0; }
.status { display: flex; gap: 12px; align-items: flex-start; background: var(--surface); border: 1px solid var(--line);
  border-radius: 8px; padding: 16px; margin: 16px 0; max-width: 40em; }
.status.klein { padding: 10px 14px; }
.punkt { width: 14px; height: 14px; border-radius: 50%; background: var(--muted); flex: none; margin-top: 5px; }
.status.ok .punkt { background: var(--ok); }
.status.warnung .punkt { background: var(--warn); }
.status.stoerung .punkt { background: var(--bad); }
.fuss { border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }
.fuss .breit { display: flex; gap: 16px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 24px; }
.fuss a { color: var(--muted); }
.fuss span { margin-left: auto; }
table { border-collapse: collapse; display: block; overflow-x: auto; }
th, td { border: 1px solid var(--line); padding: 4px 8px; text-align: left; }
