:root {
  --grund: #f4f2ee;
  --flaeche: #ffffff;
  --text: #1f2421;
  --text-leise: #5a625d;
  --linie: #d6d2c9;
  --akzent: #1f5a43;
  --akzent-text: #ffffff;
  --warnung: #8a3b12;
  --warnung-grund: #fbeee4;
  --markiert: #fff6d6;
}

* { box-sizing: border-box; }

html { font-size: 112.5%; }

body {
  margin: 0;
  background: var(--grund);
  color: var(--text);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.5;
}

.kopf { background: var(--akzent); color: var(--akzent-text); }
.kopf-innen {
  max-width: 44rem;
  margin: 0 auto;
  padding: 0.9rem 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.6rem;
}
.marke { font-weight: 700; letter-spacing: 0.12em; }
.marke-zusatz { opacity: 0.85; }

.seite { max-width: 44rem; margin: 0 auto; padding: 1.2rem 1rem 3rem; }

h1 { font-size: 1.45rem; line-height: 1.25; margin: 0.4rem 0 0.8rem; text-wrap: balance; }
h2 { font-size: 1.05rem; margin: 0 0 0.6rem; }
p { margin: 0 0 0.9rem; }

.karte {
  background: var(--flaeche);
  border: 1px solid var(--linie);
  border-radius: 8px;
  padding: 1rem;
  margin: 0 0 1rem;
}

.leise { color: var(--text-leise); font-size: 0.9rem; }

.hinweis {
  background: var(--warnung-grund);
  color: var(--warnung);
  border-radius: 8px;
  padding: 0.8rem 1rem;
  margin: 0 0 1rem;
}

label { display: block; font-weight: 600; margin: 0.9rem 0 0.25rem; }
.feld:first-of-type label { margin-top: 0; }

input[type="text"], input[type="tel"], input[type="email"], textarea {
  width: 100%;
  font: inherit;
  color: inherit;
  padding: 0.6rem 0.7rem;
  border: 1px solid #8f958f;
  border-radius: 6px;
  background: #fff;
}
textarea { min-height: 6rem; resize: vertical; }
input:focus-visible, textarea:focus-visible, button:focus-visible {
  outline: 3px solid #e0a800;
  outline-offset: 2px;
}
input.geaendert, textarea.geaendert { background: var(--markiert); }
input.fehler { border-color: var(--warnung); border-width: 2px; }

.code-eingabe {
  font-size: 1.6rem;
  letter-spacing: 0.3em;
  text-align: center;
  font-variant-numeric: tabular-nums;
  max-width: 14rem;
}
.zugang-eingabe { font-family: ui-monospace, Menlo, Consolas, monospace; text-transform: uppercase; }

.festwert { padding: 0.2rem 0; overflow-wrap: anywhere; }
.vorher { color: var(--text-leise); font-size: 0.85rem; margin-top: 0.2rem; overflow-wrap: anywhere; }

button {
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  border-radius: 6px;
  padding: 0.7rem 1.1rem;
  border: 1px solid var(--akzent);
  background: var(--akzent);
  color: var(--akzent-text);
}
button.zweit { background: transparent; color: var(--akzent); }
button.klein { padding: 0.35rem 0.7rem; font-size: 0.9rem; }
button:disabled { opacity: 0.55; cursor: default; }

.knoepfe { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }
.auswahl { display: flex; flex-direction: column; gap: 0.6rem; }
.auswahl button { text-align: left; overflow-wrap: anywhere; }
.zeile { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }

details { margin-top: 1.5rem; }
summary { cursor: pointer; color: var(--akzent); font-weight: 600; }
.vortext { white-space: pre-line; }

/* Überschrift bekommt nach dem Seitenwechsel den Fokus (Vorlesehilfen), ohne Rahmen */
h1:focus { outline: none; }
